如何拦截Cmd的+ Q
问题描述:
我在Win/MacOS的游戏应用程序的工作。 当用户关闭应用程序时,我想显示确认弹出窗口“您确定要离开?”。如何拦截Cmd的+ Q
在Windows上,我听取WM_CLOSE
消息拦截Alt-F4。然后,如果用户选择“是,我想离开” - 我打电话PostQuitMessage(0);
退出该应用程序。
如何拦截Cmd的+ Q在Mac OS?而且,如果用户选择“是,我要离开” - 我怎么关闭应用程序(即如何执行同样的动作为Cmd的+ Q默认完成了)?
MacOS的部分是写在普通的Objective-C和我正在寻找在Objective-C的答案。
答
实现委托方法的NSApplication
applicationShouldTerminate
和显示自定义模式的警报。根据回答返回NSTerminateNow
,NSTerminateCancel
或NSTerminateLater
。
在NSTerminateLater
情况下,你可以再打[NSApp replyToApplicationShouldTerminate:YES];
最终退出程序。
的可能的复制[OSX上摇摆:如何捕获命令Q](http://*.com/questions/2061194/swing-on-osx-how-to-trap-command-q) – BladeMight