2017-02-04 116 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

的可能的複製[OSX上搖擺:如何捕獲命令Q](http://stackoverflow.com/questions/2061194/swing-on-osx-how-to-trap-command-q) – BladeMight

回答

2

實現委託方法的NSApplicationapplicationShouldTerminate和顯示自定義模式的警報。根據回答返回NSTerminateNowNSTerminateCancelNSTerminateLater

NSTerminateLater情況下,你可以再打[NSApp replyToApplicationShouldTerminate:YES];最終退出程序。