objective-c – 如何组织“窗口”菜单?

我有一个基于文档的应用程序.每个文档都可以有多个窗口.每个窗口都会自动添加到“窗口”菜单中.但是,它们或多或少地以随机和无用的顺序添加.我希望窗口标题根据它们所属的NSDocument进行组织,类似于XCode或Photoshop的工作方式.

我该怎么做才能做到最好?如何防止AppKit的默认行为将所有窗口添加到此特殊菜单中,我应该在哪里放置以“正确”方式添加菜单项的代码?我不想把处理程序放到每个窗口控制器中!

最佳答案
确实看起来这是Cocoa应该自动完成的事情.我不知道是否这样做,但首先要检查的是窗口控制器是否正确连接到他们的文档.您的文档子类的windowControllers属性是否包含所有正确的对象?

如果这不好,那么从NSWindow’s reference看起来阻止标题已被设置的窗口被添加到Windows菜单的唯一方法是 – [NSWindow setExcludedFromWindowsMenu:].看起来你想要在所有窗口上调用它,然后设置一个对象(可能在MainMenu笔尖中),它负责Windows菜单中所有窗口的位置和分组(通过NSApplication的方法).您可能需要输入特殊的禁用项目等,以使分组看起来正确.我希望即使您之前已经要求将它们排除在外,仍然可以手动添加窗口.

转载注明原文:objective-c – 如何组织“窗口”菜单? - 代码日志