Добавить / удалить значок приложения из док-станции во время выполнения?

Есть ли общедоступный Apple API, который позволяет удалять значок док-станции приложения во время выполнения? Я попытался заменить пустое представление нулевым размером через dockTile NSApplication, но это просто стирает значок док-станции, не освобождая место и индикатор запуска. Я также знаю о параметре LSUIElement в приложении info.plist, но это значение оценивается только при запуске. Это не параметр времени выполнения.


person ctpenrose    schedule 29.11.2011    source источник
comment
Никогда не видел, чтобы ни одно приложение так делало. Как вы думаете, это хорошая идея? Мне как пользователю это точно не нравится. Хороший вопрос, так что +1   -  person    schedule 30.11.2011
comment
Мнения по этому поводу, вероятно, разделились. Но есть коммерческие примеры этого: Sparrow позволяет пользователю выбирать, есть ли в приложении значок меню, значок док-станции или и то, и другое. Однако для удаления его значка из док-станции требуется перезапуск приложения. Это наводит меня на мысль, что они используют логическое значение NSUIElement в списке.   -  person ctpenrose    schedule 30.11.2011


Ответы (1)


Это улица с односторонним движением: вы можете настроить свое приложение на NSUIElement, чтобы скрыть значок док-станции, затем вызвать [NSApp setActivationPolicy:NSApplicationActivationPolicyRegular];, чтобы показать его в доке, но как только он появится, вы не сможете его удалить. Таким образом, вы можете сделать значок док-станции настраиваемым пользователем, но вам придется перезапустить приложение, чтобы скрыть значок.


РЕДАКТИРОВАТЬ

Вы можете позвонить setActivationPolicy:NSApplicationActivationPolicyProhibited, чтобы снова скрыть значок док-станции - user1592530 18 сен.

The comment is right. Works two ways nowadays – Daij-Djan Dec 24 '12 at 11:46


person Francis McGrew    schedule 30.11.2011
comment
Если кому-то нужно решение, предшествующее Snow Leopard, Carbon API TransformProcessType делает то же самое, что и [NSApplication setActivationPolicy:] (включая работу только в одном направлении). - person JWWalker; 30.11.2011
comment
Вы можете позвонить setActivationPolicy:NSApplicationActivationPolicyProhibited, чтобы снова скрыть значок док-станции - person ; 18.09.2012