2011-11-16 11 views
5

Ok Tengo una aplicación de menú de estado con un elemento de menú "Ocultar".OSX: ¿Cómo "mostrar" un elemento de la barra de estado?

Al hacer clic en "Ocultar" llama:

[[NSStatusBar systemStatusBar] removeStatusItem:statusItem] 

que por supuesto elimina mi solicitud de la barra de estado a pesar de que aún se está ejecutando.

Quiero que mi aplicación se vuelva a agregar a la barra de estado del sistema cuando el usuario "abre" mi aplicación en la carpeta de aplicaciones. El problema es que no puedo insertar la pieza de código para hacer esto dentro de "ApplicationDidFinishLaunching" ya que la aplicación ya está abierta. ¿Entonces qué debo hacer?

+0

hace esto ayuda posterior: http://stackoverflow.com/questions/843379/how-do-you-toggle-the-status-item-in -the-menubar-on-and-off-using-a-checkbox – petert

Respuesta

2

Puede usar -applicationDidBecomeActive:, aunque necesita distinguir entre los casos en los que la aplicación se activa después de que estaba oculta, y se activó después de que el usuario cambió a una aplicación diferente sin ocultar la suya.

+0

gracias. funciona :) – hollow7

0

¿No puede inicializar ese elemento de estado mediante programación? Esto parece funcionar para mí, incluso fuera de 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"]; 
Cuestiones relacionadas