如何从另一个视图访问 NSStatusBar?
How to access NSStatusBar from another view?
我有状态栏图标,我正在尝试添加右键菜单。
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];
我不太确定你的问题是什么,但在过去你可以在你的 `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
,我似乎无法在线找到相关文档。您可能需要检查头文件。
我有状态栏图标,我正在尝试添加右键菜单。
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];
我不太确定你的问题是什么,但在过去你可以在你的 `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
,我似乎无法在线找到相关文档。您可能需要检查头文件。