2

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

4

1 回答 1

1

您可以查看在正在处理的事件中是否按住了选项键,如下所示:

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

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

我想您还应该检查这[NSApp currentEvent]是一个鼠标事件等,但似乎这种测试组合应该为您提供所需的信息。


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

于 2013-09-24T21:58:09.907 回答