如何用快捷键"Command + W"关闭每个可见窗口

Mat*_*oal 1 cocoa nswindow

使用与辅助首选项窗口一起工作的简单应用程序,我发现了一种我无法理解的行为.

当我打开首选项窗口时,如果我按下Cmd + W,我只关闭主窗口.这是标准行为吗?哪种方法可以实现关闭每个窗口的方法?

Fra*_*rew 7

[[NSApp windows] makeObjectsPerformSelector:@selector(close)];

是一种关闭所有窗口的程序化方法,但这确实不是好设计,因为用户不希望Command + W关闭应用程序的所有窗口.这就是Command + Option + W的用途.

如果您有基于文档的应用程序,则可以将辅助窗口更改为实例,NSPanel然后选中"文档模态"属性.这样,当您的文档窗口关闭时,辅助窗口也将关闭.

如果它不是基于文档的应用程序,您可以检查窗口的"取消激活时隐藏"属性,该属性将在应用程序进入后台时隐藏窗口.

除此之外,如果你想将两个窗口"绑定"在一起,我认为你必须设置一个NSWindowDelegate并手动维护它们的相对可见性状态.那有意义吗?