OSX:如何“取消隐藏”状态栏项目?

时间:2011-11-16 08:54:32

标签: macos cocoa menu status nsstatusbar

好的我有一个状态菜单应用程序,其中包含“隐藏”菜单项。

点击“隐藏”来电:

[[NSStatusBar systemStatusBar] removeStatusItem:statusItem]

当然,即使它仍在运行,它也会从状态栏中删除我的应用程序。

当用户在Applications文件夹中“打开”我的应用程序时,我希望将我的应用程序重新添加到系统状态栏中。问题是我无法在“ApplicationDidFinishLaunching”中插入代码片段,因为应用程序已经打开。那我该怎么办?

2 个答案:

答案 0 :(得分:3)

您可以使用-applicationDidBecomeActive:,但您需要区分应用程序在隐藏后变为活动状态,并在用户切换到其他应用程序而不隐藏您的应用程序后变为活动状态。

答案 1 :(得分:0)

您不能以编程方式初始化该状态项吗?这似乎对我有用,甚至在applicationDidFinishLaunching:

之外
    // Install status item into the menu bar
myStatusItem = [[NSStatusBar systemStatusBar] statusItemWithLength:NSSquareStatusItemLength];
NSImage *statusImage = [NSImage imageNamed:@"Status.png"];
[myStatusItem setImage:statusImage];
NSImage *altStatusImage = [NSImage imageNamed:@"StatusHighlighted"];
[myStatusItem setAlternateImage:altStatusImage];
[myStatusItem setHighlightMode:YES];
[myStatusItem setMenu:self.myStatusMenu];
[self.myStatusMenuItem setTitle:@"Show"];
相关问题