Wie buche ich ein Fenster nach vorne, wenn Sie nicht in der Anwendung in Objective-C sind

8

Gibt es eine Möglichkeit, ein "makeKeyAndOrderToFront" zu erstellen, ohne in der Anwendung zu sein?

Wenn ich in Safari und in der Menüleiste bin, gibt es ein MenuItem zu meiner App, nachdem ich dies drücke, möchte ich ein Fenster meiner App im Vordergrund anzeigen (makeKeyAndOrderToFront macht dies nur, wenn Sie in der Anwendung sind) .

Welchen Weg kann ich benutzen? Und wie kann ich dieses Fenster animieren (wie Tweeties Neuen Tweet hinzufügen - & gt; atebits.com).

Danke!

    
ahmet2106 07.04.2010, 14:52
quelle

4 Antworten

21

Wie Sie festgestellt haben, hat die Änderung der Fensterreihenfolge in Ihrer Anwendung keine Auswirkung auf die aktive Anwendung. Sie können Ihre Anwendung in den Vordergrund bringen, indem Sie sie aktivieren:

%Vor%

Wenn Ihre Anwendung über ein Dock-Symbol verfügt, ähnelt das Verhalten dem Benutzer, der darauf klickt.

    
Matt Stevens 08.04.2010 14:47
quelle
1

Applescript wäre eine trivial einfache Möglichkeit, um Ihre App ganz vorne zu haben. Es wird jedoch keine Animation machen.

%Vor%     
kubi 08.04.2010 13:16
quelle
0

Wenn Sie die Frage richtig verstehen, ist es vielleicht am besten, wenn Ihre Anwendung auf ein Apple-Ereignis reagiert, das Sie senden, nachdem Ihr Menüelement ausgewählt wurde und die Anwendung und das gewünschte Fenster angezeigt werden die Front.

    
ericg 08.04.2010 12:59
quelle
0

Wenn Ihre Anwendung eine Verbindung zum Windows-Server hat (bei Verwendung von AppKit oder Carbon), können Sie die Core Services-Funktion SetFrontProcess() in den Vordergrund bringen. SetFrontProcessWithOptions() kann verwendet werden, um nur das vorderste nicht schwebende Fenster Ihrer App in den Vordergrund zu bringen. Diese Funktionen scheinen für 64-Bit-Anwendungen verfügbar zu sein. Wenn Sie jedoch auf 10.6+ abzielen, ist es wahrscheinlich besser, wenn Sie die NSRunningApplication class. Etwas wie

%Vor%

sollte den Trick machen.

    
Jeremy W. Sherman 08.04.2010 19:14
quelle