2011-11-16 9 views
5

Ok ho un'applicazione di menu di stato con una voce di menu "Nascondi" al suo interno.OSX: come "mostrare" un elemento della barra di stato?

Cliccando su "Nascondi" chiama:

[[NSStatusBar systemStatusBar] removeStatusItem:statusItem] 

che naturalmente rimuove mia applicazione dalla barra di stato anche se è ancora in esecuzione.

Desidero che la mia applicazione venga riaggiunta nella barra di stato del sistema quando l'utente "apre" la mia applicazione nella cartella Applicazioni. Il problema è che non riesco a inserire il pezzo di codice per farlo all'interno di "ApplicationDidFinishLaunching" poiché l'applicazione è già aperta. Quindi cosa dovrei fare?

+0

Questo messaggio di aiuto: http://stackoverflow.com/questions/843379/how-do-you-toggle-the-status-item-in -la-menubar-on-and-off-using-a-check-box – petert

risposta

2

È possibile utilizzare -applicationDidBecomeActive:, anche se è necessario distinguere tra i casi in cui l'applicazione diventa attiva dopo che è stata nascosta e si è attivata dopo che l'utente è passato a un'altra app senza nascondere la propria.

+0

grazie. Funziona :) – hollow7

0

Non puoi semplicemente inizializzare questa voce di stato a livello di programmazione? Questo sembra funzionare per me, anche al di fuori di applicationDidFinishLaunching:

// Install status item into the menu bar 
myStatusItem = [[NSStatusBar systemStatusBar] statusItemWithLength:NSSquareStatusItemLength]; 
NSImage *statusImage = [NSImage imageNamed:@"Status.png"]; 
[myStatusItem setImage:statusImage]; 
NSImage *altStatusImage = [NSImage imageNamed:@"StatusHighlighted"]; 
[myStatusItem setAlternateImage:altStatusImage]; 
[myStatusItem setHighlightMode:YES]; 
[myStatusItem setMenu:self.myStatusMenu]; 
[self.myStatusMenuItem setTitle:@"Show"]; 
Problemi correlati