2011-11-16 14 views
5

Ok Mam aplikację menu stanu z pozycją menu "Ukryj".OSX: jak "odkryć" element paska statusu?

Kliknięcie na „Hide” wzywa:

[[NSStatusBar systemStatusBar] removeStatusItem:statusItem] 

co oczywiście usuwa moją aplikację z paska stanu, mimo że nadal działa.

Chcę, aby moja aplikacja została ponownie dodana do paska stanu systemu, gdy użytkownik "otworzy" moją aplikację w folderze Aplikacje. Problem polega na tym, że nie mogę wstawić fragmentu kodu, aby to zrobić w "ApplicationDidFinishLaunching", ponieważ aplikacja jest już otwarta. Więc co powinienem zrobić?

+0

Czy za ten post pomocy: http://stackoverflow.com/questions/843379/how-do-you-toggle-the-status-item-in -the-menu-i-off-a-checkbox-a-checkbox – petert

Odpowiedz

2

Można użyć numeru -applicationDidBecomeActive:, ale trzeba rozróżnić przypadki, w których aplikacja staje się aktywna po jej ukryciu, i stała się aktywna po tym, jak użytkownik przełączył się do innej aplikacji, nie ukrywając swojej.

+0

dziękuję. to działa :) – hollow7

0

Nie możesz po prostu zainicjować tego elementu statusu programowo? To wydaje się działać dla mnie, nawet poza 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"]; 
Powiązane problemy