2011-01-21 14 views
14

Próbuję zrobić aplikację kakao, która jest całkiem prosta. Mam trzy okna z trzema wiadomościami, to wszystko. Co staram się zrobić to w ten sposób:Prosta aplikacja kakao z ikoną MenuBar. Jak:?

użytkownik uruchamia aplikację, pojawia się ikona aplikacji w pasku menu i to wszystko, co się dzieje, nie ma menu i nie ikonę doku

Następnie użytkownik może kliknąć ikonę MenuBar i listę rozwijaną i wybierz jedną z trzech dostępnych wiadomości.

wiem, że to nie ma sensu, ale to jest dosłownie mój pierwszy wniosek i nie mogę dowiedzieć się, jak dostać NSStatusItem działać prawidłowo ...

Mam rozejrzał się i znaleźć kilka tutoriali, ale mogę” wydaje się podążać za którymś z nich ... jakąkolwiek pomocą?

Odpowiedz

18
  1. Jeśli chodzi o „nie” - dok ikonę dodawania logiczną LSUIElement wpisu do Info.plist plik i ustawić ją na prawdziwej. Nie będzie to również pokazywać aplikacji w interfejsie przełączania aplikacji (karta cmd +).
  2. Dodanie Menu ikonek jest jak patrząc na NSStatusBar i NSStatusItem dokumentacji i korzystania tam przykładowy kod:

.

// this one is taken from apple documentation 
- (void)activateStatusMenu { 
    NSStatusBar *bar = [NSStatusBar systemStatusBar]; 

    theItem = [bar statusItemWithLength:NSVariableStatusItemLength]; 
    [theItem retain]; 

    [theItem setTitle: NSLocalizedString(@"Tablet",@"")]; 
    [theItem setHighlightMode:YES]; 
    [theItem setMenu:theMenu]; 
} 

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification { 
    [self activateStatusMenu]; 
} 

Aktualizacja Od ARC nie pozwala retain połączeń w kodzie, udało mi się rozwiązać ten problem poprzez stworzenie theItem jako __strong instancji zmiennej klasy, gdzie element jest tworzony.

+1

Wow, to świetnie. Ja (jak sugeruję to moja rączka) jestem totalnym kakao newb i nadchodzę z tła vb.net i zmagam się trochę ze składnią celu-c, a co nie. Zauważyłem jednak, że dokumentacja kakao jabłkowego jest dużo bardziej dokładna niż dokumentacja vb Microsoftu, która nie jest zbyt "przyjazna dla użytkownika". Twoja odpowiedź bardzo pomogła i dziękuję ci za pomoc. – Zrb0529

Powiązane problemy