macos cocoa menu status nsstatusbar

macos - OSX: ¿Cómo "mostrar" un elemento de la barra de estado?



cocoa menu (2)

Puede usar -applicationDidBecomeActive: aunque necesita distinguir entre los casos en 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.

Ok, tengo una aplicación de menú de estado con un elemento de menú "Ocultar".

Al hacer clic en "Ocultar" llamadas:

[[NSStatusBar systemStatusBar] removeStatusItem:statusItem]

que, por supuesto, elimina mi aplicación de la barra de estado aunque todavía esté ejecutándose.

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?


¿No puedes simplemente inicializar ese ítem de estado programáticamente? 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"];