通常使用选项键关闭窗口会关闭应用程序中的所有窗口。在我的应用程序中,我希望它只关闭与用户正在关闭的窗口相关的窗口。我怎样才能做到这一点?我可以为我所有的窗口实现 windowShouldClose,但是我怎么知道用户点击了哪个窗口呢?
问问题
182 次
1 回答
1
您可以查看在正在处理的事件中是否按住了选项键,如下所示:
([[NSApp currentEvent] modifierFlags] & NSAlternateKeyMask)!=0
如果这是响应用户单击窗口的关闭按钮,那么您可以找到被单击的窗口,如下所示:[[NSApp currentEvent] window]
我想您还应该检查这[NSApp currentEvent]
是一个鼠标事件等,但似乎这种测试组合应该为您提供所需的信息。
另一方面,如果这是用户在按住选项键的情况下从“文件”菜单中选择“关闭窗口”命令,您可以将默认实现中的performClose:
方法覆盖NSWindow
为您自己的方法,您将在其中进行currentEvent
测试打电话之前在上面[super performClose: sender]
于 2013-09-24T21:58:09.907 回答