0

我有状态栏图标,我正在尝试添加右键菜单。

   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];
4

1 回答 1

0

我不太确定你的问题是什么,但在过去你可以调用-popStatusItemMenu你的 `NSStatusItem 实例来显示一个菜单(特别是在你的 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我似乎无法在线找到文档的。您可能需要检查头文件。

于 2015-07-03T06:35:59.703 回答