如何拦截Cmd的+ Q

如何拦截Cmd的+ Q

问题描述:

我在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://*.com/questions/2061194/swing-on-osx-how-to-trap-command-q) – BladeMight

实现委托方法的NSApplicationapplicationShouldTerminate和显示自定义模式的警报。根据回答返回NSTerminateNowNSTerminateCancelNSTerminateLater

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