这段代码工作正常
override func nextResponder() -> UIResponder? {
// it's called when user make any touch event
return super.nextResponder()
}
它基本上有助于获得有关任何用户互动的通知。
现在,在Swift 3中它是一个变量而不是函数,我甚至无法用didSet观察它。那么如何在Swift 3中使用上面的代码
答案 0 :(得分:5)
您可以覆盖变量:
override var next: UIResponder? {
get {
// do something
return super.next
}
}
由于变量被定义为只读变量,因此实现didSet
没有意义。你不应该设置这个变量。相反,UIResponder
的不同子类可以覆盖变量并返回不同的值。基类返回nil
。
注意:变量在Swift 3中称为next
,在Objective-C和早期的Swift版本中称为nextResponder
。当您在右栏中的 Swift 和 Objective-C 之间切换时,可以在documentation中看到这一点。
答案 1 :(得分:0)
nextResponder
已被next
中的Swift 3
取代。它的新声明是:
var next: UIResponder? { get }