У вас есть несколько вариантов. Как сказал сморган, launchd
очень хорошо для этого работает. Другой (относительно простой) вариант - добавить приложение в список элементов входа пользователя. Посмотрите этот вопрос StackOverflow , чтобы узнать, как это сделать. Я фактически использовал это в приложении для установки небольшого помощника, и он работает очень хорошо. Затем ваше приложение будет использовать что-то вроде NSTimer
(или какой-либо другой вид уведомлений, в зависимости от вашего приложения), чтобы определить, когда показывать окно.
Если вы хотите, чтобы ваша программа была скрыта, за исключением случаев, когда окно является видимым, вы также можете рассмотреть возможность сделать его LSUIElement
. По сути, вы добавляете клавишу LSUIElement
в ваш файл Info.plist
, и при запуске программы у нее не будет ни строки меню, ни значка закрепления. Пользователь увидит пользовательский интерфейс только тогда, когда вы действительно покажете свое окно.
Если вы объедините эти два параметра, у вас будет приложение, которое запускается при входе пользователя в систему (вы также можете запустить его вручную, если это необходимо) и отображает окно только тогда, когда вы этого хотите.