So prüfen Sie, ob ein NSWindow sichtbar ist

8

Gibt es eine Möglichkeit zu überprüfen, ob NSWindow sichtbar ist oder nicht? Ich möchte einen Blatt-Controller anzeigen, sobald das erste Fenster meiner App sichtbar wurde (die Animation auf 10.7 ist beendet und der Benutzer kann das Fenster sehen!). Wenn ich das Blatt nur in windowDidLoad zeige, ergibt das eine blöd aussehende Animation (Blatt wird geöffnet, Fenster springt von hinten aus). Ich weiß, dass NSWindowDelegate zwei Methoden bereitstellt, die aufgerufen werden, wenn ein Fenster entweder zum Schlüsselfenster oder zum Hauptfenster wurde, dies muss jedoch nicht bedeuten, dass das Fenster zu diesem Zeitpunkt bereits vollständig sichtbar ist. Dies ist noch deutlicher auf Lion, wo Fenster mit dieser dummen Animation auftauchen.

    
JustSid 16.08.2011, 16:59
quelle

2 Antworten

24

Ich würde für so etwas gehen:

%Vor%

Oder ein Beobachter für diesen Schlüsselpfad, der benachrichtigt wird, wenn die Änderung eintritt.

    
PeyloW 16.08.2011, 17:20
quelle
1

Für was es sich lohnt, können Sie auch an die window.visible-Eigenschaft binden. Xcode 4 kann Sie quälen und sagen, dass es keine bindbare Eigenschaft ist, aber es wird funktionieren.

Dies kann nützlich sein, wenn Sie versuchen, NSStatusItem zu aktivieren / deaktivieren, basierend darauf, ob das Fenster sichtbar ist, oder auf andere Ansätze.

d. im Interface Builder:

  • Bindung an: App-Delegierter
  • Modellschlüsselpfad: self.window.visible
Scott Allen 15.03.2013 16:21
quelle

Tags und Links