我有一个正在运行的项目,现在它已接近完成,但现在我在app委托类中有一个方法,我希望应该在项目中的所有按钮上调用此方法。一个简单的方法是我应该在每个按钮监听器代码中添加对方法的调用。 但是有没有办法让我用Button动作“Touch up inside”
连接它答案 0 :(得分:3)
通过继承UIButton类来覆盖sendActionsForControlEvents。
- (void)sendActionsForControlEvents:(UIControlEvents)controlEvents {
if(controlEvents == UIControlEventTouchUpInside) {
//call your method.
}
[super sendActionsForControlEvents:controlEvents];
}
您可能必须遍历所有UIButtons并将其类更改为您的子类。我还没试过,但我想你可以试一试。
答案 1 :(得分:0)
您可以将 扩展 用于此
extension UIButton
{
override open func sendActions(for controlEvents:UIControlEvents)
{
if controlEvents == .touchUpInside
{
// Type your custom execution here
}
}
}
按钮
上的每个事件都会调用此方法答案 2 :(得分:0)
swift 5
extension UIButton {
open override func sendAction(_ action: Selector, to target: Any?, for event: UIEvent?) {
//your code
super.sendAction(action, to: target, for: event)
}
}
我发现这是为每次按钮点击实现通用操作的最简单方法。这比对应用中的每个按钮进行子类化要简单得多。