如何以编程方式打开状态栏应用程序?

How to programmatically open status bar app?

我想在触发全局快捷方式时打开我的状态栏应用程序。

下面是我设置 statusItem 的方法:

NSMenu *appMenu=[NSMenu new];
NSMenuItem *firstItem=[NSMenuItem new];
[firstItem setView:_clickView];
[appMenu addItem:firstItem];
self.statusItem = [[NSStatusBar systemStatusBar] statusItemWithLength:100];
[self.statusItem setTitle:@"App"];
[self.statusItem setMenu:appMenu];

之后我使用 DDHotKey 来响应快捷方式。我可以确定是否触发了快捷方式,但我不知道如何打开菜单,因为它是单击状态栏。

我也试过玩 NSMenu popUpContextMenu。但在我看来,这不是正确的方法。菜单显示在一个新的 window 中,这不是我想要的行为。

NSStatusItem popUpStatusItemMenu: 成功了。我只是将它自己的菜单作为参数传递并且它有效。