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
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.
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