2009-12-10 18 views
6

jak wykryć kliknięcie lewym przyciskiem myszy na ikonie paska stanu, a następnie wykonaj jakąś akcję, w zależności od tego, który przycisk myszy (trackpad) został kliknięty?Objective-C: NSStatusBar kliknij prawym i lewym przyciskiem myszy

używam:

_statusItem = [[[NSStatusBar systemStatusBar] statusItemWithLength:NSSquareStatusItemLength] retain]; 
    [_statusItem setMenu:menu]; 
    [_statusItem setHighlightMode:YES]; 

Aby wygenerować StatusBar ikonę

Odpowiedz

13

Aby wykryć przycisków myszy, które są aktualnie wciśnięty, można użyć [NSEvent pressedMouseButtons].

Aby wykryć klikniętą ikonę paska stanu, można wykryć pojawiające się menu. Tuż przed otwarciem menu wysyła komunikat menuWillOpen: do swojego uczestnika (jeśli taki posiada). Więc zaimplementować coś takiego:

- (void)menuWillOpen:(NSMenu *)menu 
{ 
    NSLog(@"%d",[NSEvent pressedMouseButtons]); 
} 

będzie trzeba także ustawić delegata do menu, na przykład poprzez

[menu setDelegate:self]; 
Powiązane problemy