Предотвращение выхода пользователя из системы или выключения - PullRequest
4 голосов
/ 13 марта 2012

Я занимаюсь разработкой приложения для Mac OS, и одно из требований состоит в том, чтобы это приложение блокировало пользователя от выхода из системы или выключения компьютера, если пользователь не выполнил некоторые задачи в приложении. Можно ли добиться этого с помощью какао или углерода? Если так, как я мог реализовать такую ​​функциональность?

Спасибо

Ответы [ 2 ]

4 голосов
/ 13 марта 2012

Когда пользователь пытается выйти из системы или завершить работу, система попросит все приложения выйти. Если какое-либо приложение откажется выйти, действие будет отменено. Поскольку вы хотите отменить эти действия, вы, вероятно, также хотите предотвратить нормальное завершение работы приложения. Как часть последовательности завершения, приложение запрашивает разрешение у своего делегата. Таким образом, чтобы отменить выход из системы и завершение работы, а также запретить пользователю нормально выходить из приложения, можно использовать делегат приложения для отклонения действия.

- (NSApplicationTerminateReply)applicationShouldTerminate:(NSApplication *)sender
    if([self shouldPreventTermination])
        return NSTerminateCancel;
    return NSTerminateNow;
}
2 голосов
/ 13 марта 2012

Этого можно достичь в режиме киоска ( документация ). Обратите внимание, что часто есть способы обойти это.

...