2017-09-16 7 views
1

J'ai essayé le code ci-dessous ciblant à la fois iOS 10.0/Watch OS 3.0 et iOS 11.0/Watch OS 4.0, et testé à la fois dans le simulateur et mon périphérique Watch OS 4 . Rien ne semble déclencher la méthode déléguée crownDidRotate.WKCrownDelegate ne semble pas fonctionner avec Xcode 9 GM

Interface simple avec une étiquette connectée à la prise. Je sais que c'est connecté parce que je change le texte dans la méthode awake. Rompre dans la méthode du délégué ne s'arrête jamais quand je fais tourner la couronne.

Des idées?

import Foundation 
import WatchKit 
class InterfaceController: WKInterfaceController, WKCrownDelegate { 
    var value = 1 
    @IBOutlet var label: WKInterfaceLabel! 
    override func awake(withContext context: Any?) { 
     super.awake(withContext: context) 
     label.setText("Yeah?") 
     crownSequencer.delegate = self 
     crownSequencer.focus() 
    } 
    func crownDidRotate(_ crownSequencer: WKCrownSequencer?, rotationalDelta: Double) { 
     label.setText("Rotational: \(rotationalDelta)") 
    } 
} 

Répondre

2

J'ai eu la même expérience. Comme un hack, j'ai ajouté un autre appel à crownSequencer.focus() dans willActivate(), et je vois maintenant des événements. (xcode 9.0 gm, ios 11.0 gm, watchos 4.0 gm)