2016-04-08 8 views
0

Ich schrieb ein Projekt, das als Hintergrund-App arbeitet, und ich habe dieses kleine Problem.Kakao - Räume spontan ändern

Sagen wir, ich habe 3 offene Desktops (Leerzeichen) auf meinem Mac:

  1. Raum mit offenem NSWindow von meinem Projekt
  2. leeren Raum ohne geöffneten Ordner apps
  3. Raum mit beispielsweise geöffneten Ordner

ich bin zur Zeit auf Platz Nummer 1.

ich Swipe 3 Finger sw links jucken, um Platz zu leeren, und dann wieder, um zu einem Raum mit geöffnetem Ordner zu wechseln (der sofort den Fokus erhält).

Dann wische ich mit drei Fingern nach rechts, um vom dritten Raum auf den zweiten zu wechseln, und was passiert ist, dass es (IMO) weiß, dass es dort kein einziges NSWindow gibt, auf das es fokussiert wird Ich berühre sogar das Touchpad) und NSWindow von meiner App aus konzentriert sich jetzt.

Meine Frage ist - , wie das zu verhindern? Ich meine, ich kann mich nicht erinnern, solche Dinge absichtlich eingestellt zu haben (meine App basiert darauf, dass ich mich auf NSWindow konzentriere, aber nur, wenn der Benutzer auf ein Fenster klickt).

Antwort

0

Ich vermute, dass Ihre App als aktiv gilt, wenn Sie zum ersten Mal auf Speicherplatz 2 wechseln. Wenn Sie dann von Speicherplatz 3 auf 2 zurückwechseln, wird Ihre App reaktiviert (da sie zuletzt aktiv war) macht das Fenster Ihrer Anwendung zum Haupt-/Schlüsselfenster, und das Standardverhalten ist es, zum Fensterbereich zu wechseln, wenn es Haupt/Schlüssel wird.

Sie können das Systemverhalten mit den Systemeinstellungen> Mission Control> ändern. Wechseln Sie beim Wechseln zu einer Anwendung zu einem Space mit geöffneten Fenstern für die Anwendung.

Sie können das Verhalten Ihrer App ändern, indem Sie die Eigenschaft collectionBehavior des Fensters auf NSWindowCollectionBehaviorMoveToActiveSpace setzen, obwohl das dazu führen würde, dass das Fenster der Anwendung auf Platz 2 verschoben wird. Dies kann auch in IB mithilfe des Attribut Inspektors festgelegt werden.

+0

Danke Ken, aber gibt es eine Möglichkeit, dies programmatisch zu verhindern, ohne mein App-Fenster in den aktiven Bereich zu verschieben? Ich finde das ziemlich komisch, da sich andere Apps nicht gleich verhalten. – Ancinek

+0

Ist es tatsächlich so, dass Ihre App beim ersten Wechsel zu Speicherplatz 2 noch aktiv ist? Das erkennen Sie an der Menüleiste. Kannst du das auch mit einem neuen, einfachen Cocoa-Projekt reproduzieren? Wenn ein neues Projekt es nicht reproduziert, dann müssen Sie untersuchen, was Sie mit Ihrem gemacht haben, was es anders macht. –