Macos 我可以用程序打开菜单吗?

Macos 我可以用程序打开菜单吗?,macos,menubar,nsmenu,Macos,Menubar,Nsmenu,就像标题所说的,我想每隔一定的时间自动打开菜单。最好是从程序本身开始,因为我相信我可以用applescripts+cron手动完成一些我不想使用的事情 我说的是OSX菜单栏上的菜单/按钮/任何东西。我只是想说清楚。没有自定义视图,只有一个普通的nsmenu。您可以通过调用以下命令以编程方式显示nsmenu: [NSMenu popUpContextMenu:YOUR_MENU withEvent:MOUSE_EVENT forView:YOUR_VIEW] 要构造事件,可以使用NSEvent的

就像标题所说的,我想每隔一定的时间自动打开菜单。最好是从程序本身开始,因为我相信我可以用applescripts+cron手动完成一些我不想使用的事情


我说的是OSX菜单栏上的菜单/按钮/任何东西。我只是想说清楚。没有自定义视图,只有一个普通的nsmenu。

您可以通过调用以下命令以编程方式显示
nsmenu

[NSMenu popUpContextMenu:YOUR_MENU withEvent:MOUSE_EVENT forView:YOUR_VIEW]
要构造事件,可以使用
NSEvent
+mouseEventWithType:location:modifierFlags:timestamp:windowNumber:context:eventNumber:clickCount:pressure:


注意:如果您的菜单是
NSStatusItem
菜单,则必须设置项目视图才能弹出菜单。

要打开NSStatusItem菜单,我发现在属于
NSStatusItem
的按钮上调用
performClick
方法更容易。这样我就不必担心将事件或视图正确地传递到
popUpContextMenu
。大概是这样的:

statusItem.button?.performClick(nil)

它将如下所示:
statusItem.button?.performClick(nil)