6

如何检测状态栏图标上的左键或右键单击,然后根据单击的鼠标按钮(触控板)进行一些操作?

我用:

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

生成状态栏图标

4

1 回答 1

13

要检测当前按下的鼠标按钮,您可以使用[NSEvent pressedMouseButtons].

要检测被点击的状态栏图标,您可以检测出现的菜单。就在菜单打开之前,它会向其委托(如果有的话)发送一个 menuWillOpen: 消息。所以实现这样的事情:

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

您还需要为菜单设置委托,例如通过

[menu setDelegate:self];
于 2009-12-10T15:07:25.683 回答