5

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

点击“隐藏”调用:

[[NSStatusBar systemStatusBar] removeStatusItem:statusItem]

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

当用户在“应用程序”文件夹中“打开”我的应用程序时,我希望将我的应用程序重新添加到系统状态栏中。问题是我无法在“ApplicationDidFinishLaunching”中插入代码来执行此操作,因为应用程序已经打开。所以我该怎么做?

4

2 回答 2

3

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

于 2011-11-16T09:03:42.907 回答
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"];
于 2013-01-27T00:09:07.753 回答