2009-12-10 20 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

関連する問題