在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
。 当您在右列中切换Swift和Objective-C时,可以在文档中看到这一点。
nextResponder
被Swift 3
的next
替换。 它的新声明是:
var next: UIResponder? { get }