我可以以编程方式打开NSMenu吗?

时间:2015-06-03 10:13:47

标签: macos menubar nsmenu

就像标题所说,我想以一定的间隔自动打开菜单。最好是从程序本身内部,因为我确信我可以使用applescripts + cron手动执行某些操作,我不想使用它。

我在谈论菜单/按钮/来自OSX菜单栏的任何内容。只是为了清楚。没有自定义视图,只是简单的nsmenu。

2 个答案:

答案 0 :(得分:1)

您可以通过调用以编程方式显示NSMenu

[NSMenu popUpContextMenu:YOUR_MENU withEvent:MOUSE_EVENT forView:YOUR_VIEW]

要构建活动,您可以使用NSEvent的{​​{1}}

注意:如果您的菜单是+mouseEventWithType:location:modifierFlags:timestamp:windowNumber:context:eventNumber:clickCount:pressure:菜单,则必须设置项目的视图才能弹出菜单。

答案 1 :(得分:0)

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