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?

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top