2009-12-10 3 views
6

как обнаружить левый или правый щелчок на значке строки состояния, а не сделать какое-либо действие, в зависимости от того, какая кнопка мыши (трекпад) была нажата?Objective-C: NSStatusBar правой и левой кнопкой мыши щелкните

Я использую:

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

Для создания STATUSBAR значок

ответ

13

Чтобы обнаружить кнопки мыши, которые в настоящее время прессованные, вы можете использовать [NSEvent pressedMouseButtons].

Чтобы определить щелчок на значке состояния, вы можете обнаружить отображаемое меню. Перед открытием меню он отправляет сообщение menuWillOpen: его делегату (если оно есть). Так что реализовать что-то вроде этого:

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

Вам также нужно установить делегат для меню, например, путем

[menu setDelegate:self]; 
Смежные вопросы