UIButton删除所有目标操作

SK9*_*SK9 333 uibutton ios

我已经添加了多个target-action-forControlEvents:到UIButton.我想一次性删除所有这些,而不释放任何东西.然后我会设定新的目标.

这可能吗?我该怎么做呢?

pro*_*rmr 801

调用removeTarget:action:forControlEvents : ,为目标传递nil,为操作传递NULL,并使用设置所有位的控制掩码(UIControlEventAllEvents).

Objective-C的

[someControl removeTarget:nil 
                   action:NULL 
         forControlEvents:UIControlEventAllEvents];
Run Code Online (Sandbox Code Playgroud)

斯威夫特2

button.removeTarget(nil, action: nil, forControlEvents: .AllEvents)
Run Code Online (Sandbox Code Playgroud)

斯威夫特3

button.removeTarget(nil, action: nil, for: .allEvents)
Run Code Online (Sandbox Code Playgroud)

  • 另外:-allTargets实例方法返回所有实例目标的NSSet(如果没有则为nil). (6认同)
  • 谢谢你的提示!以下是我认为的全部链接(即该部分):"http://developer.apple.com/iphone/library/documentation/uikit/reference/UIControl_Class/Reference/Reference.html#//apple_ref/occ/instm/UIControl/removeTarget:动作:forControlEvents:" (4认同)
  • 完善!正是我在寻找的东西:D (3认同)

Hlu*_*ung 91

@ progrmr在Swift 2中的回答:

button.removeTarget(nil, action: nil, forControlEvents: .AllEvents)
Run Code Online (Sandbox Code Playgroud)

和斯威夫特3:

button.removeTarget(nil, action: nil, for: .allEvents)
Run Code Online (Sandbox Code Playgroud)

注意:Swift没有NULL,所以我测试了替换它,nil它似乎工作正常.

  • 对于Swift 3:".AllEvents"现在是".allEvents"(带小写'a'):`removeTarget(nil,action:nil,for:.allEvents)` (5认同)

Iya*_*Iya 6

迅速:

btnCancel.removeTarget(self, action: Selector(), forControlEvents: UIControlEvents.AllEvents)
Run Code Online (Sandbox Code Playgroud)


Ria*_*man 5

斯威夫特 2:

actionButton.removeTarget(nil, action: nil, forControlEvents: .AllEvents)
Run Code Online (Sandbox Code Playgroud)

斯威夫特 3 和 4:

actionButton.removeTarget(nil, action: nil, for: .allEvents)
Run Code Online (Sandbox Code Playgroud)

目标-C:

[actionButton removeTarget: nil action: NULL forControlEvents: UIControlEventAllEvents];
Run Code Online (Sandbox Code Playgroud)

希望能帮助到你。