我有状态栏图标,我正在尝试添加右键菜单。
statusItem = [[[NSStatusBar systemStatusBar] statusItemWithLength:NSSquareStatusItemLength] retain];
MyView *view = [MyView new];
view.image = statusImage;
[statusItem setView:view];
[statusItem setToolTip:@"Program Name"];
view.target = self;
view.action = @selector(openLeftWindow:);
view.rightAction = @selector(openRightWindow:);
在其他视图中,如果用左或右按钮按下NSStatusBar
,我就能得到。在右键单击事件中,我正在尝试添加NSMenu
。
我想我可以添加这样的菜单:
[statusItem setMenu:theMenu];
但我不能,因为我没有statusItem。我对此非常陌生,所以也许它甚至不是正确的方法。
编辑:不知怎的,我设法制作菜单。我不确定这是否正确,但我所做的只是将statusItem分配给我的自定义视图:
view.statusItem = statusItem;
将此添加到自定义视图头文件中:
@property NSStatusItem *statusItem;
并显示如下菜单:
[self.statusItem popUpStatusItemMenu:theMenu];
答案 0 :(得分:0)
我不太确定您的问题是什么,但在过去,您可以在您的`NSStatusItem实例上调用-popStatusItemMenu
来显示菜单(特别是在您的openRightWindow等视图操作中) :https://developer.apple.com/library/mac/documentation/Cocoa/Reference/ApplicationKit/Classes/NSStatusItem_Class/index.html#//apple_ref/occ/instm/NSStatusItem/popUpStatusItemMenu:
如果要访问您的状态项实例,我建议您将该属性添加到MyView
,以便您可以引用它。
但是,从10.10开始,您应该使用NSStatusBarButton
我似乎无法在线查找文档。您可能需要检查头文件。