2011-03-26 15 views
7

Jestem całkiem nowy dla kakao, więc przepraszam za wszelkie głupie błędy, które popełniam. Mam NSStatusItem, którego chcę użyć, aby otworzyć menu. Jednak o ile wiem i słyszałem w różnych formach, bez niestandardowego widoku ograniczasz się tylko do menu podręcznego. Czy to prawda? A jeśli tak, to jak zrobić niestandardowy widok, aby coś zrobić (np. Otworzyć okno w moim przypadku)? Dzięki za pomoc.Jak otworzyć okno po kliknięciu na NSStatusItem?

Odpowiedz

14

Nie, to nieprawda. Musisz ustawić cel i akcję, aby element statusu wywoływał metodę, która robi to, co chcesz (otwiera okno).

// This goes where you set up the status item 
NSStatusItem *statusItem; // You need to get this from the status bar 
[statusItem setTarget:self]; 
[statusItem setAction:@selector(openWindow:)]; 

// This method is called when the status item is clicked 
- (void)openWindow:(id)sender { 
    NSWindow *window = [self window]; // Get the window to open 
    [window makeKeyAndOrderFront:nil]; 
} 

Można też zadzwonić do swojego OpenWindow [NSApp activateIgnoringOtherApps:nil];: sposób, aby zapewnić, że okna otworzyć nie jest za oknem jakiegoś innego programu.

+0

Dzięki! Działa teraz idealnie :) – Luke

+1

Dzięki za wkład, podsumowałem to na blogu http://www.jademind.com/blog/posts/show-nswindow-below-your-nsstatusitem ponownie – anka