Ich verwende self.statusItem = [[NSStatusBar systemStatusBar] statusItemWithLength:NSVariableStatusItemLength];
, um der SystemStatusBar unter OSX ein statusItem hinzuzufügen. Das statusItem erscheint dann an der ganz linken Position in der SystemStatusBar. Ich habe mich gefragt, ob es einen Weg gibt, solch einen Gegenstand zu einem spezifischen Index hinzuzufügen, z. auf der linken Seite der Systemuhr?Ist es möglich, ein NSStatusItem zu einer bestimmten Position in NSStatusBar hinzuzufügen?
Antwort
Nein. Apple bietet keine API zur Auswahl der Position an.
Es gibt eine private API, dies zu tun:
NSStatusItem *item = [NSStatusBar _statusItemWithLength:NSSquareStatusItemLength withPriority:INT32_MAX];
, die den Status Artikel stellen wird den ganzen Weg nach rechts (oder zumindest so weit nach rechts, wie Sie sie haben sind erlaubt Es ist immer noch links von Spotlight.
Offensichtlich eine private API sollten Sie es in eine responseToSelector
if-Anweisung wickeln.
Ja und nein. Mit der privaten API können Sie priority
zum Hinzufügen von NSStatusItem
angeben. Ich habe eine kleine Kategorie für NSStatusBar
entwickelt (NSStatusBar+MISSINGOrder) Hexe bietet eine einfache Methode dafür:
NSStatusItem *statusItem =
[systemStatusBar statusItemWithLength:NSVariableStatusItemLength
positioned:NSStatusBarItemOrderingModeAfter
relativeTo:NSStatusBarItemPriorityNotificationCenter];
Sie können für implementation details nach innen schauen.
warum es in meinem Projekt nicht funktioniert, bin ich am 10.12 – jimwan
Verweise http://undefinedvalue.com/2009/07/07/adding-custom-view-nsstatusitem –