nextResponder in Swift 3

孤人 提交于 2019-12-22 00:13:39

问题


in Swift 2 this code works fine

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

it's basically helps to get notification about any user interaction.

in Swift 3 now it's a variable not a function and I can't even observe it with didSet.

so how to use the code above in Swift 3


回答1:


You can override the variable:

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

As the variable is defined as a read-only variable, implementing didSet doesn't make sense. You're not supposed to set this variable. Instead, different subclasses of UIResponder can override the variable and return different values. The base class returns nil.

Note: The variable is called next in Swift 3 and nextResponder in Objective-C and earlier Swift versions. This can be seen in the documentation when you switch between Swift and Objective-C in the right column.




回答2:


nextResponder is replaced by next in Swift 3. Its new declaration is:

var next: UIResponder? { get }


来源:https://stackoverflow.com/questions/40677049/nextresponder-in-swift-3

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!