2017-02-04 9 views
1

Я работаю над приложением Win/MacOS. Когда пользователь закрывает приложение, я хочу показать всплывающее окно подтверждения «Вы уверены, что хотите уйти?».Как перехватить Cmd + Q

В Windows, я слушаю WM_CLOSE сообщение для перехвата Alt-F4. Затем, если пользователь выбирает «Да, я хочу уйти» - я вызываю PostQuitMessage(0); для выхода из приложения.

Как перехватить Cmd + Q на Mac OS? И, если пользователь выбирает «Да, я хочу уйти» - как закрыть приложение (т. Е. Как выполнить то же действие, что и Cmd + Q по умолчанию)?

Часть MacOS написана на простой Objective-C, и я ищу ответ в Objective-C.

+0

Возможный дубликат [Swing on OSX: Как запустить команду-Q?] (Http://stackoverflow.com/questions/2061194/swing-on-osx-how-to-trap-command-q) – BladeMight

ответ

2

Внесите делегат метод applicationShouldTerminate из NSApplication и покажите индивидуальное модальное предупреждение. В зависимости от ответа на возврат NSTerminateNow, NSTerminateCancel или NSTerminateLater.

В случае NSTerminateLater вы можете позже позвонить [NSApp replyToApplicationShouldTerminate:YES];, чтобы окончательно выйти из приложения.

Смежные вопросы