UIButton删除所有目标操作

纵然是瞬间 提交于 2020-03-09 21:30:10

我已经添加了多个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:

此方法停止将事件传递到指定的目标对象。

  1. 在target参数中指定有效对象时,此方法会停止将指定事件传递给与该对象关联的所有操作方法。

  2. 为目标参数指定nil ,此方法可防止将这些事件传递到所有目标对象的所有操作方法

    Objective-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


#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];

希望能帮助到你。

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!