在Swift 3中的nextResponder

在Swift 2中,这段代码运行正常

override func nextResponder() -> UIResponder? { // it's called when user make any touch event return super.nextResponder() } 

它基本上有助于获得有关任何用户交互的通知。

在Swift 3中,现在它是一个变量而不是函数,我甚至无法用didSet观察它。

那么如何在Swift 3中使用上面的代码

您可以覆盖变量:

 override var next: UIResponder? { get { // do something return super.next } } 

由于变量被定义为只读变量,因此实现didSet没有意义。 你不应该设置这个变量。 相反, UIResponder不同子类可以覆盖变量并返回不同的值。 基类返回nil

注意:变量在Swift 3中被调用,而在Objective-C和之前的Swift版本中调用nextResponder 。 当您在右列中切换SwiftObjective-C时,可以在文档中看到这一点。

nextResponderSwift 3next替换。 它的新声明是:

 var next: UIResponder? { get }