2016-11-18 4 views
1

à Swift 2 ce code fonctionne très biennextResponder à Swift 3

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

il est aide essentiellement à obtenir notification de toute interaction de l'utilisateur. Dans Swift 3, maintenant c'est une variable qui n'est pas une fonction et je ne peux même pas l'observer avec didSet.

donc comment utiliser le code ci-dessus dans Swift 3

Répondre

4

Vous pouvez remplacer la variable:

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

Comme la variable est définie comme une variable en lecture seule, la mise en œuvre didSet n'a pas de sens . Vous n'êtes pas censé définir cette variable. Au lieu de cela, différentes sous-classes de UIResponder peuvent remplacer la variable et renvoyer des valeurs différentes. La classe de base renvoie nil.

Remarque: La variable est appelée next dans Swift 3 et nextResponder dans les versions Objective-C et antérieures de Swift. Cela peut être vu dans le documentation lorsque vous basculez entre Swift et Objective-C dans la colonne de droite.

0

nextResponder est remplacé par next dans Swift 3. Sa nouvelle déclaration est:

var next: UIResponder? { get }