我已经向UIButton添加了多个target-action-forControlEvents:。我想在不释放任何东西的情况下一次删除所有这些。然后我会设定新的目标。
这是可能的吗?我该如何着手呢?
发布于 2015-04-19 00:21:30
@progrmr在Swift 2中的回答是:
button.removeTarget(nil, action: nil, forControlEvents: .AllEvents)
和Swift 3:
button.removeTarget(nil, action: nil, for: .allEvents)
注意: Swift没有NULL
,所以我测试了用nil
替换它,它似乎工作得很好。
发布于 2015-09-11 18:18:36
Swift 3,4,5:
btnCancel.removeTarget(nil, action: nil, forControlEvents: UIControlEvents.AllEvents)
发布于 2021-09-29 19:12:03
如果选择器是有条件的,则可以更改选择器。请参见下面的示例
您可以先删除所有目标,然后选择选择器并添加它。
RateButton.removeTarget(无,操作:无,用于:.allEvents)
let action = interview.isRated ? #selector(viewTapped(_:)) : #selector(rateTapped(_:))
rateButton.addTarget(self, action: action, for: .touchUpInside)
https://stackoverflow.com/questions/3340825
复制相似问题