Обнаружение выхода пользователя из системы в macOS - PullRequest
1 голос
/ 01 июля 2019

В настоящее время я пытаюсь обнаружить выход пользователя из системы в macOS 10.14 (Mojave). Я нашел это, которое работало в прошлом:

Событие Catching Logoff (не выключено) на MAC с использованием цели C

Код, который я использую:

NSAppleEventManager* m = [NSAppleEventManager sharedAppleEventManager];
NSAppleEventDescriptor* desc = [m currentAppleEvent];

switch ([[desc attributeDescriptorForKeyword:kAEQuitReason] int32Value])
{
    case kAELogOut:
    case kAEReallyLogOut:
        // log out
        break;
    case kAEShowRestartDialog:
    case kAERestart:
        // system restart
        break;
    case kAEShowShutdownDialog:
    case kAEShutDown:
        // system shutdown
        break;
    default:
        // ordinary quit
        break;
}

Но полученное мной значение всегда равно нулю (0).

Что-то изменилось в Мохаве или есть другой механизм? Этот код вызывается в функции applicationShouldTerminate в моем AppDelegate.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...