我在 swift 中使用响应链时遇到问题。
当我使用 nil 目标设置按钮目标时:
someButton.addTarget(nil, action:"addButtonTapped:", forControlEvents: .TouchUpInside)
Action 将被发送到响应者链,直到 Action 在 Controller 中被处理。到目前为止一切顺利:-)
但我想拦截 Action ,执行一些代码并将其转发给 Controller 。但是我找不到快速执行此操作的方法。在 ObjC 中,这个任务很容易完成,所以我想也应该有一种快速的方法。
在此先感谢您的帮助:-)
最佳答案
我的一位同事提示我重新创建选择器并再次手动发送它。
let selector = Selector("someButtonTapped:")
let target: AnyObject? = self.nextResponder()?.targetForAction(selector, withSender: button)
UIApplication.sharedApplication().sendAction(selector, to: target, from: self, forEvent: nil)
这将重新创建响应者链并将新消息转发给下一个响应者。
我希望有人会觉得这很有用。
关于ios - Swift 中的响应链(UIButton 目标中的 nil 目标),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29815240/