2009-12-10 3 views
6

상태 표시 줄 아이콘에서 왼쪽 또는 오른쪽 클릭을 감지하고 마우스 버튼 (트랙 패드)을 클릭 한 상태에 따라 동작을 수행하는 방법은 무엇입니까?Objective-C : NSStatusBar 오른쪽 클릭 및 왼쪽 클릭

내가 사용

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

현재 누르면 마우스 버튼을 감지하기 위해 상태 표시 아이콘

답변

13

를 생성하려면, 당신은 [NSEvent pressedMouseButtons]를 사용할 수 있습니다.

클릭 한 상태 표시 줄 아이콘을 감지하려면 나타나는 메뉴를 검색 할 수 있습니다. 메뉴가 열리기 직전에 delegate에 menuWillOpen : 메시지를 보냅니다 (있는 경우). 그래서 이런 걸 구현 : 나는 다른 해결책을 발견

[menu setDelegate:self]; 
3

에 의해 또한 메뉴의 대리자를 설정해야합니다

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

, 예를 들어, 여기를 참조하십시오.

Cocoa: Right Click NSStatusItem

관련 문제