Есть ли способ сказать OS X Lion отключить автоматическое завершение для данного приложения, которое вы не хотите автоматически завершать?
К вашему сведению, Лев - лодырь, если вы еще не знали, что, если вы не хотите, чтобы это было для определенной Заявки.
Lion закроет ваши запущенные приложения за вашей спиной, если решит, что им нужны ресурсы, и если вы, кажется, не используете их. Эвристика для определения того, является ли приложение «используемым», очень консервативна: оно не должно быть активным приложением, оно не должно иметь видимых не минимизированных окон - и, конечно, оно должно явно поддерживать автоматическое завершение.
Например, скажем, я не хочу, чтобы TextEdit автоматически завершал работу, когда у меня нет открытых окон TextEdit, и переключался на другое приложение.
После того, как взглянуть на Mac App Программирование раздел Руководство для автоматического прекращения я полагал , что я бы попытаться добавить ключ NSSupportsAutomaticTermination со значением Нет файла Info.plist для TextEdit. (Не работает: TextEdit вылетает при открытии.)
Следует отметить, что файл не содержал ключ NSSupportsAutomaticTermination (что означает, что Apple использовала NSProcessInfo для включения автоматического завершения), поэтому добавление ключа, скорее всего, никак не повлияет, поскольку NSProcessInfo переопределяет то, что находится в файле plist. (Подтверждено, что это не работает, путем самостоятельной подписи TextEdit с измененным Info.plist, включая ключ NSSupportsAutomaticTermination и значение No).
Отмечен один побочный эффект: изменение чего-либо в файле Info.plist приводит к сбою TextEdit при открытии. Причина отмечена в журнале сбоев как «недопустимая подпись кода», что означает, что приложение TextEdit и все его содержимое имеют подпись кода. Обходной путь заключается в самостоятельной подписи приложения с помощью codesign
команды и самозаверяющего корневого сертификата, как указано в задаче подписи кода .
После того, что я пробовал до сих пор, TextEdit по-прежнему подчиняется автоматическому завершению.