Answers:
调用removeTarget:action:forControlEvents:,为目标传递nil,为操作传递NULL,并使用设置所有位的控制掩码(UIControlEventAllEvents)。
目标C
[someControl removeTarget:nil
action:NULL
forControlEvents:UIControlEventAllEvents];
迅捷2
button.removeTarget(nil, action: nil, forControlEvents: .AllEvents)
迅捷3
button.removeTarget(nil, action: nil, for: .allEvents)
@progrmr在Swift 2中的答案:
button.removeTarget(nil, action: nil, forControlEvents: .AllEvents)
和Swift 3:
button.removeTarget(nil, action: nil, for: .allEvents)
注意:Swift没有NULL
,因此我测试了将其替换为,nil
并且看起来工作正常。
removeTarget(nil, action: nil, for: .allEvents)
nil
或NULL
以双方在Objective-C的第一和第二个参数太多,它会工作。我相信两者均被定义为(void*) 0
(或至少评估为相等)。
迅速:
btnCancel.removeTarget(self, action: Selector(), forControlEvents: UIControlEvents.AllEvents)
斯威夫特2:
actionButton.removeTarget(nil, action: nil, forControlEvents: .AllEvents)
Swift 3和4:
actionButton.removeTarget(nil, action: nil, for: .allEvents)
目标C:
[actionButton removeTarget: nil action: NULL forControlEvents: UIControlEventAllEvents];
希望能帮助到你。
- removeTarget:action:forControlEvents:
此方法停止将事件传递到指定的目标对象。
在目标参数中指定有效对象后,此方法将停止将指定的事件传递给与该对象关联的所有操作方法。
为目标参数指定nil时,此方法可防止将这些事件传递给所有目标对象的所有操作方法
目标-c:
[_myButton removeTarget: //any validObject (or) nil
action:nil
forControlEvents:UIControlEventAllEvents];
迅速:
myButton.removeTarget(*validObject or nil*, action:nil, forControlEvents:UIControlEvents.AllEvents)
有关更多详细信息,请参见https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIControl_Class/index.html#//apple_ref/occ/instm/UIControl/removeTarget:action:forControlEvents: