Я очень плохо знаком с платформой Mac и Objective-C в целом, и в моем приложении я хотел бы знать, как определить, что пользователь выходит из системы, и выполнить некоторые действия до этого. Любая информация или указатели для этого?
Официальный способ поставить точку при входе / выходе из системы описан в этих документах Apple Настройка входа и выхода из системы и Техническая записка 2228 . Но я боюсь, что ловушка выхода из системы больше не поддерживалась напрямую.
Итак, второй лучший способ - запустить приложение без какао и получить уведомление от системы, используя NSWorkspace, см. документ и список доступных уведомлений .
NSWorkspace
Чтобы создать приложение без какао, вам нужно установить в его Info.plist запись с именем LSUIElement, см. здесь . Если для LSUIElement установлено значение «да», приложение не отображается в доке, а выполняет различные операции в фоновом режиме.
Info.plist
LSUIElement
Посмотрите на Получение уведомлений рабочей области в этом документе Workspace Services .
NSWorkspaceWillPowerOffNotification Опубликовано, когда пользователь запросил выйдите из системы или чтобы машина была включена выкл.
NSWorkspaceWillPowerOffNotification
Опубликовано, когда пользователь запросил выйдите из системы или чтобы машина была включена выкл.