Mac Barra Di Stato Del Sistema Messa A Fuoco
-
12-12-2019 - |
Domanda
Ho aggiunto un menu per il mio systemStatusBar da questo codice:
statusItem = [[[NSStatusBar systemStatusBar] statusItemWithLength:NSVariableStatusItemLength] retain];
E quindi impostare le proprietà.L'unico con altri elementi di stato (Volume, data e ora, la connessione Wi-Fi gratuita, BatteryIndicator, ...) è che se io selezionarlo e premere sinistra o destra tasti di direzione sulla tastiera, non posso passare ad altre Voci e come il saggio se seleziono un altro stato voce e premere tasti di direzione non selezionare il mio status voce e invece salta all'altro statusItem.Mi chiedevo c'è un modo per risolvere questo problema o è standard per i non OS statusItems?
Soluzione
La barra dei menu si vede non è uniforme in oggetto.L'applicazione di voci di menu sulla sinistra parte appartengono all'applicazione corrente.Tutte queste voci di menu sono figli di un comune NSMenu
oggetto.
Gli elementi della barra di stato sul fondamentale diritto appartengono al sistema (Spotlight, Orologio, TimeMachine etc.) e anche condividere un padre in comune NSMenu
o sono solo alcuni privilegi speciali.
Personalizzato barra di stato la voce di menu appartiene per la sua applicazione e ha un proprio stand alone NSMenu
oggetto padre.Ogni menu di stato è - come si sa - inserito in un NSStatusItem
che appartiene al NSStatusBar
oggetto.Entrambi ereditano direttamente da NSObject
e (a differenza di NSMenu
) la mancanza di interfacce per determinare lo stato del menu di genitori o fratelli.Ogni voce barra di stato è assolutamente isolato.
Così, si può facilmente navigare con i tasti freccia all'interno di un NSMenu
, dove ogni elemento non conosce i suoi figli e genitori.Di sicurezza, non è possibile passare dalla barra di stato del menu di qualsiasi altro menu.