截取选项 - 关闭

时间:2013-09-21 21:58:46

标签: macos cocoa

通常使用选项键关闭窗口会关闭应用程序中的所有窗口。在我的应用程序中,我希望它只关闭与用户关闭的窗口相关的窗口。我怎样才能做到这一点?我可以为所有窗口实现windowShouldClose,但是如何知道用户点击了哪个窗口?

1 个答案:

答案 0 :(得分:1)

您可以看到在正在处理的事件中是否按下了选项键:

([[NSApp currentEvent] modifierFlags] & NSAlternateKeyMask)!=0

如果这是为了响应用户点击窗口的关闭按钮,那么您可以找到点击的窗口,如下所示:[[NSApp currentEvent] window]

我想您还应该检查[NSApp currentEvent]是否是鼠标事件等,但似乎这些测试组合应该可以获得您想要的信息。


另一方面,如果用户在按住选项键的情况下从“文件”菜单中选择“关闭窗口”命令,则可以从performClose:覆盖NSWindow方法对您自己的默认实现,您可以在调用currentEvent之前执行上面的[super performClose: sender]测试