2016-11-18 116 views
1

在斯威夫特2此代码工作正常nextResponder斯威夫特3

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

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

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

所以如何在斯威夫特使用上面的代码3

回答

4

您可以覆盖变量:

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

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

注意:这个变量在Swift 3中被称为next,在Objective-C和早期的Swift版本中被称为nextResponder。当您在SwiftObjective-C之间切换时,可以在documentation的右列中看到。

0

nextResponder被替换为nextSwift 3。其新的声明是:

var next: UIResponder? { get }