1

Auf die hilfreiche Frage Force reload watchOS 2 Complications Benutzer @alexeyvmp erwähnt in a comment, dass Sie einen Beobachter für das Ereignis CLKComplicationServerActiveComplicationsDidChangeNotification hinzufügen sollten.So reagieren Sie auf CLKComplicationServerActiveComplicationsDidChangeNotification

Was ist ein guter Ort, um diesen Beobachter zu erstellen, und wie würde es aussehen? Erstelle ich es aus meiner ComplicationDataSource oder in meinem InterfaceController? Wie stelle ich sicher, dass es nicht immer wieder neu erstellt wird?

Ich habe versucht, zu lesen, wie man Beobachter in Swift erstellen, aber ich habe eine harte Zeit herauszufinden, wo es zu setzen. Ich habe derzeit

let notificationCenter = NSNotificationCenter.defaultCenter() 
let mainQueue = NSOperationQueue.mainQueue() 

_ = notificationCenter.addObserverForName(CLKComplicationServerActiveComplicationsDidChangeNotification, object: nil, queue: mainQueue) { _ in 
    print("active complications changed. refresh!") 
} 

Jede Hilfe wird geschätzt.

Antwort

1

Sie sollten den Betrachter in InterfaceController Ort:

NotificationCenter.default.addObserver(self, 
     selector: #selector(InterfaceController.CLKComplicationServerActiveComplicationsDidChangeNotification(_:)), 
     name: NSNotification.Name(rawValue: "CLKComplicationServerActiveComplicationsDidChangeNotification"), object: nil) 

So werden Sie wissen, in InterfaceController wenn die Komplikation geändert.

Verwandte Themen