Как создать вспомогательное приложение (LSUIElement), которое также имеет (съемный) значок дока - PullRequest
6 голосов
/ 21 марта 2011

Я отправил вспомогательное приложение (используя LSUIElement) в Mac App Store.У меня сложилось ложное впечатление, что в процессе установки App Store будет добавлена ​​иконка для вспомогательных приложений.

Как я могу создать значок дока, который пользователь мог бы удалить, в то время как приложение строки состояния работает независимо (как популярное приложение Caffeine)?Нужно ли создавать приложение, не относящееся к LSUIElement, которое загружает приложение LSUIElement, или есть лучший способ?

Ответы [ 2 ]

19 голосов
/ 22 марта 2011

Вместо использования LSUIElement используйте метод NSApplication setActivationPolicy:. По умолчанию приложение будет иметь значок закрепления, но, изменив политику активации на NSApplicationActivationPolicyAccessory, вы получите тот же эффект, что и LSUIElement, и сможете изменить его программно (документация для NSApplicationActivationPolicyAccessory говорит, что она эквивалентна LSUIElement = 1) .

- (void)applicationDidFinishLaunching:(NSApplication *)app {
    if([[NSUserDefaults standardUserDefaults] boolForKey:@"HideDockIcon"])
        [NSApp setActivationPolicy:NSApplicationActivationPolicyAccessory];
}
1 голос
/ 24 марта 2011

Видимо, я был дезинформирован рецензентом моего приложения (на самом деле два из них).Значок док-станции - , созданный для вас в процессе установки.Нажав на проблему, я смог получить приложение в процессе проверки.

...