Отключение значка док-станции для приложения в Mac OSX другим способом

В mac osx для большинства приложений сохраняется значок док-станции. Но если разработчик тех же приложений хочет скрыть значок док-станции, то как ему это скрыть?

Как разработчик я знаю, что файл свойств Info.plist - это один из способов скрыть значок док-станции для приложения.

Но нет ли у нас другого решения для этого?

Я надеюсь, что должны быть другие способы, поскольку все знают, что «нет способов решения проблемы N нет»

заранее спасибо

М @ k4mac


person mak4mac    schedule 04.03.2011    source источник
comment
Почему вы, как разработчик приложения, должны иметь возможность управлять док-станцией пользователя?   -  person Cody Gray    schedule 04.03.2011
comment
@Cody Gray: некоторые приложения предназначены для работы в фоновом режиме и не отображают свои значки в Dock.   -  person mipadi    schedule 04.03.2011
comment
@mipadi: А, я имел в виду не через Info.plist, который специально предназначен для решения этого варианта использования.   -  person Cody Gray    schedule 05.03.2011


Ответы (3)


Если вы разрабатываете приложение, вы хотите установить LSUIElement в значение TRUE в вашем Info.plist.

Если вы запускаете приложение, вы можете использовать такую ​​программу, как Без док-станции.

Если хотите лишних опций, используйте Linux :)

person Patrick Perini    schedule 22.06.2011

Решение Info.plist - единственный способ скрыть значок в Dock (для приложения с графическим интерфейсом).

Что вы пытаетесь достичь? Может быть, есть решение, которое можно найти, если вы расскажете подробнее.

person mipadi    schedule 04.03.2011

этот метод LSUIElement больше не работает в версии 10.8

добавить Carbon.framework сделать plist Приложение является агентом (UIElement) = 1 проверено

// this should be called from awakeFromNib method
if (![[NSUserDefaults standardUserDefaults] boolForKey:@"LaunchAsAgentApp"]) 
{   ProcessSerialNumber psn = { 0, kCurrentProcess };

// display dock icon
TransformProcessType(&psn, kProcessTransformToForegroundApplication);

// enable menu bar
SetSystemUIMode(kUIModeNormal, 0);

// switch to Dock.app
[[NSWorkspace sharedWorkspace] launchAppWithBundleIdentifier:@"com.apple.dock"    options:NSWorkspaceLaunchDefault additionalEventParamDescriptor:nil launchIdentifier:nil];

// switch back
[[NSApplication sharedApplication] activateIgnoringOtherApps:TRUE];

}
person Jiulong Zhao    schedule 15.07.2012