2017-09-16 4 views
1

Ich habe den unten stehenden Code für iOS 10.0/Watch OS 3.0 und iOS 11.0/Watch OS 4.0 getestet und sowohl im Simulator als auch in meinem Watch OS 4-Gerät getestet . Nichts scheint die Delegatenmethode crownDidRotate auszulösen.WKCrownDelegate scheint nicht mit Xcode 9 zu arbeiten GM

Einfache Schnittstelle mit einem Etikett an der Steckdose angeschlossen. Ich weiß, dass es verbunden ist, weil ich den Text in der awake Methode ändere. Das Abbrechen der Delegiertenmethode wird nie beendet, wenn ich die Krone rotiere.

Irgendwelche Ideen?

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)") 
    } 
} 

Antwort

2

Ich hatte die gleiche Erfahrung. Als Hack habe ich einen weiteren Aufruf von crownSequencer.focus() in willActivate() hinzugefügt, und ich sehe jetzt Ereignisse. (xcode 9,0 g, ios 11,0 g, watchos 4,0 g)

Verwandte Themen