Wie bekomme ich Frame für NSStatusItem?

8

Ist es möglich, den Rahmen von NSStatusItem zu erhalten, nachdem ich ihn in Cocoa zur Statusleiste hinzugefügt habe? Wenn meine App gestartet wird, füge ich ein Element zur Systemstatusleiste hinzu und möchte wissen, wo es positioniert wurde, ist möglich.

    
marcc 24.03.2011, 01:38
quelle

5 Antworten

1

Wenn Sie eine benutzerdefinierte Ansicht für das Statuselement festgelegt haben:

%Vor%

Ansonsten glaube ich nicht, dass es möglich ist, die verfügbaren und dokumentierten APIs zu verwenden.

Bearbeiten: Incorporated Kommentare.

    
nate 19.08.2011, 14:09
quelle
25

Das Folgende scheint zu funktionieren - ich habe ähnliche Lösungen für iOS-Anwendungen gesehen und angeblich erlauben sie die Übermittlung an den App Store, da Sie immer noch Standard-SDK-Methoden verwenden.

%Vor%     
Crutt 29.04.2012 20:38
quelle
24

Mit 10.10 hat NSStatusItem eine Eigenschaft button , die verwendet wird, um die Statuselementposition abzurufen, ohne eine benutzerdefinierte Ansicht festzulegen.

%Vor%     
Taylor 09.07.2014 17:07
quelle
0

Dies ist ohne eine private API möglich. Hier ist eine Kategorie für NSScreen. Mithilfe der Bildanalyse wird das Bild des Statuselements in der Menüleiste gesucht. Glücklicherweise sind Computer wirklich schnell. :)

Solange Sie wissen, wie das Bild des Statuselements aussieht und es als NSMage übergeben kann, sollte diese Methode es finden.

Funktioniert sowohl für den dunklen Modus als auch für den normalen Modus. Beachten Sie, dass das Bild, das Sie übergeben, schwarz sein muss. Farbige Bilder werden wahrscheinlich nicht so gut funktionieren.

%Vor%     
TyR 28.06.2016 21:01
quelle
-3

Sie können das Fenster ivar so hacken:

%Vor%

Dies ist nützlich für Statuselemente ohne benutzerdefinierte Ansicht.

Getestet auf Lion

    
LeTof67 13.03.2012 22:01
quelle

Tags und Links