Ich mache eine Anwendung, die der Benutzer mit einem Fenster interagieren muss und wenn sie das Fenster so konfiguriert haben, wie sie es wollen, wechseln sie zu einer anderen Anwendung, dann wird meine Anwendung anfangen, andere Dinge zu tun, die ich definiert habe in einer Methode
sagen für ein Beispielprogramm, wenn das Hauptfenster den Fokus hat, enthält es eine Beschriftung, die sagt "ich bin fokussiert" und wenn die Person auf den Desktop oder ein anderes Fenster / Anwendung klickt, dann wird das Etikett lesen "Ich bin nicht fokussiert".
Danke
Das ist nicht dasselbe wie das Schlüsselfenster. Schlüsselfenster bedeutet, dass Sie Eingabeereignisse für Ihre Anwendung erhalten. Was Sie wissen möchten, ist, ob Ihre Anwendung im Vordergrund steht. Sie suchen nach den NSApplication
Benachrichtigungen NSApplicationDidBecomeActiveNotification
und NSApplicationDidResignActiveNotification
. Beobachten Sie diese, um festzustellen, ob Ihre Anwendung im Vordergrund steht oder nicht. Die applicationDidBecomeActive:
und applicationDidResignActive:
Ihres Anwendungsdelegaten werden bei diesen Ereignissen automatisch aufgerufen.
[NSWindow isKeyWindow]
könnte das sein, wonach Sie suchen.
Gibt an, ob das Fenster das Schlüsselfenster für die Anwendung ist.
- (BOOL) isKeyWindow
Rückgabewert YES, wenn das Fenster das Schlüsselfenster für die Anwendung ist; sonst, NEIN.
Wenn Sie erkennen möchten, wann Ihr Fenster zum Schlüssel wird oder wann es nicht mehr der Schlüssel ist, sehen Sie sich die Meldungen NSWindowDidBecomeKeyNotification
und NSWindowDidResignKeyNotification
an.