使用与辅助首选项窗口一起工作的简单应用程序,我发现了一种我无法理解的行为。
当我按下Cmd + W时打开首选项窗口时,我只关闭主窗口。 这是标准行为吗?哪种方法可以实现关闭每个窗口的方法?
答案 0 :(得分:7)
[[NSApp windows] makeObjectsPerformSelector:@selector(close)];
是一种关闭所有窗口的编程方式,但这确实不是很好的设计,因为用户不希望Command + W关闭应用程序的所有窗口。这就是Command + Option + W的用途。
如果您有基于文档的应用,则可以将辅助窗口更改为NSPanel
的实例,然后选中“文档模式”属性。这样,当您的文档窗口关闭时,辅助窗口也将关闭。
如果它不是基于文档的应用程序,您可以检查窗口的“取消激活时隐藏”属性,该属性将在应用程序进入后台时隐藏窗口。
除此之外,如果你想将两个窗口“绑定”在一起,我认为你必须设置一个NSWindowDelegate并手动维护它们的相对可见性状态。这有意义吗?