2016-11-18 197 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 }