我已经添加了多个target-action-forControlEvents:到UIButton。 我想一次性删除所有这些,而不释放任何东西。 然后我会设定新的目标。
这可能吗?我该怎么做呢?
#1楼
@ progrmr在Swift 2中的回答:
button.removeTarget(nil, action: nil, forControlEvents: .AllEvents)
和斯威夫特3:
button.removeTarget(nil, action: nil, for: .allEvents)
注意:Swift没有NULL
,所以我测试用nil
替换它,它似乎工作正常。
#2楼
迅速:
btnCancel.removeTarget(self, action: Selector(), forControlEvents: UIControlEvents.AllEvents)
#3楼
调用removeTarget:action:forControlEvents : ,为目标传递nil,为操作传递NULL,并使用设置所有位的控制掩码(UIControlEventAllEvents)。
Objective-C的
[someControl removeTarget:nil
action:NULL
forControlEvents:UIControlEventAllEvents];
斯威夫特2
button.removeTarget(nil, action: nil, forControlEvents: .AllEvents)
斯威夫特3
button.removeTarget(nil, action: nil, for: .allEvents)
#4楼
- removeTarget:action:forControlEvents:
此方法停止将事件传递到指定的目标对象。
在target参数中指定有效对象时,此方法会停止将指定事件传递给与该对象关联的所有操作方法。
为目标参数指定nil ,此方法可防止将这些事件传递到所有目标对象的所有操作方法
Objective-C的:
[_myButton removeTarget: //any validObject (or) nil action:nil forControlEvents:UIControlEventAllEvents];
迅速:
myButton.removeTarget(*validObject or nil*, action:nil, forControlEvents:UIControlEvents.AllEvents)
#5楼
斯威夫特2:
actionButton.removeTarget(nil, action: nil, forControlEvents: .AllEvents)
Swift 3&4:
actionButton.removeTarget(nil, action: nil, for: .allEvents)
Objective-C的:
[actionButton removeTarget: nil action: NULL forControlEvents: UIControlEventAllEvents];
希望能帮助到你。
来源:oschina
链接:https://my.oschina.net/stackoom/blog/3190717