我已经向 Mac App Store 提交了一个帮助应用程序(使用 LSUIElement)。我的错误印象是 App Store 安装过程会为帮助应用程序放置一个停靠图标。
如何创建用户可以删除的停靠图标,而状态栏应用程序独立运行(如流行的应用程序 Caffeine)?我是否需要创建一个加载 LSUIElement 应用程序的非 LSUIElement 应用程序,还是有更好的方法?
我已经向 Mac App Store 提交了一个帮助应用程序(使用 LSUIElement)。我的错误印象是 App Store 安装过程会为帮助应用程序放置一个停靠图标。
如何创建用户可以删除的停靠图标,而状态栏应用程序独立运行(如流行的应用程序 Caffeine)?我是否需要创建一个加载 LSUIElement 应用程序的非 LSUIElement 应用程序,还是有更好的方法?
不要使用 LSUIElement,而是使用 NSApplication 的setActivationPolicy:
方法。默认情况下,应用程序将有一个停靠图标,但是通过将激活策略更改为NSApplicationActivationPolicyAccessory
,您可以获得与 LSUIElement 相同的效果,同时能够以编程方式更改它(NSApplicationActivationPolicyAccessory 的文档说它相当于 LSUIElement=1)。
- (void)applicationDidFinishLaunching:(NSApplication *)app {
if([[NSUserDefaults standardUserDefaults] boolForKey:@"HideDockIcon"])
[NSApp setActivationPolicy:NSApplicationActivationPolicyAccessory];
}
显然,我的应用审阅者(实际上是其中两个)误导了我。停靠图标是由安装过程为您创建的。按下这个问题,我能够通过审查过程获得该应用程序。