通常使用选项键关闭窗口会关闭应用程序中的所有窗口。在我的应用程序中,我希望它只关闭与用户关闭的窗口相关的窗口。我怎样才能做到这一点?我可以为所有窗口实现windowShouldClose,但是如何知道用户点击了哪个窗口?
答案 0 :(得分:1)
您可以看到在正在处理的事件中是否按下了选项键:
([[NSApp currentEvent] modifierFlags] & NSAlternateKeyMask)!=0
如果这是为了响应用户点击窗口的关闭按钮,那么您可以找到点击的窗口,如下所示:[[NSApp currentEvent] window]
我想您还应该检查[NSApp currentEvent]
是否是鼠标事件等,但似乎这些测试组合应该可以获得您想要的信息。
另一方面,如果用户在按住选项键的情况下从“文件”菜单中选择“关闭窗口”命令,则可以从performClose:
覆盖NSWindow
方法对您自己的默认实现,您可以在调用currentEvent
之前执行上面的[super performClose: sender]
测试