如何创建一个也有(可移动)停靠图标的帮助应用程序(LSUIElement)

aka*_*aru 6 macos statusbar osx-snow-leopard mac-app-store

我已经向Mac App Store提交了一个帮助应用程序(使用LSUIElement).我误以为App Store安装过程会为帮助应用程序设置一个停靠图标.

如何在状态栏应用程序独立运行时(如热门应用程序Caffeine)创建用户可以删除的停靠图标?我是否需要创建一个加载LSUIElement应用程序的非LSUIElement应用程序,还是有更好的方法?

ugh*_*fhw 20

而不是使用LSUIElement,使用NSApplication的setActivationPolicy:方法.默认情况下,应用程序将具有停靠图标,但通过将激活策略更改为NSApplicationActivationPolicyAccessory,您可以获得与LSUIElement相同的效果,同时能够以编程方式更改它(NSApplicationActivationPolicyAccessory的文档说明它等同于LSUIElement = 1).

- (void)applicationDidFinishLaunching:(NSApplication *)app {
    if([[NSUserDefaults standardUserDefaults] boolForKey:@"HideDockIcon"])
        [NSApp setActivationPolicy:NSApplicationActivationPolicyAccessory];
}
Run Code Online (Sandbox Code Playgroud)

  • 理查德是正确的,您无法以编程方式将策略设置为NSApplicationActivationPolicyAccessory,但您可以采用其他方式:在.plist中将LSUIElement设置为1,然后(可选)将策略设置为NSApplicationActivationPolicyRegular以显示停靠图标. (8认同)
  • -1:doc说"当前,`NSApplicationActivationPolicyNone`和`NSApplicationActivationPolicyAccessory`可能会更改为`NSApplicationActivationPolicyRegular`,但不支持其他修改." (7认同)

aka*_*aru 1

显然,我的应用程序审阅者(实际上是其中两个)误导了我。Dock 图标在安装过程中为您创建的。按下这个问题,我能够让该应用程序通过审核过程。