Вы можете просто установить bool в списке предпочтений, позвонив по номеру
[[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"HideOnLaunch"];
когда пользователь решает скрыть ваше приложение при запуске.
Затем, когда ваше приложение запускается с помощью launchd, оно само может проверить настройку HideOnLaunch
в applicationDidFinishLaunching:
и соответственно скрыться:
if([[NSUserDefaults standardUserDefaults] boolForKey:@"HideOnLaunch"]){
[[NSApplication sharedApplication] hide:nil];
}
Не позволяйте launchd
скрыть ваше приложение!
Другой подход может быть следующим: вы можете легко передать аргумент в программу Какао. Как описано в этом NSUserDefaults
документе , если вы запускаете приложение Какао следующим образом:
AnApp.app/Contents/MacOS/AnApp -FuBar YES
Тогда вы можете получить значение YES
через [[NSUserDefaults standardUserDefaults] boolForKey:@"FuBar"]
.
Таким образом, в зависимости от предпочтений пользователя, вы можете написать launchd
plist, установив аргумент -HideOnLaunch YES
или -HideOnLaunch NO
.
Итак, в вашем делегате приложения, предположительно в applicationDidFinishLaunching:
, скрывайте свое приложение в зависимости от того, является ли аргумент программы
HideOnLaunch
установлено.