我有一个基于文档的应用程序。每个文档都可以有多个窗口。每个窗口都会自动添加到“窗口”菜单中。但是,它们或多或少地以随机和无用的顺序添加。我希望窗口标题可以根据它们所属的NSDocument进行组织,类似于XCode或Photoshop的工作方式。
我怎样才能做到最好?如何防止AppKit的默认行为将所有窗口添加到此特殊菜单中,我应该在哪里放置以“正确”方式添加菜单项的代码?我不想把处理程序放到每个窗口控制器中!
答案 0 :(得分:1)
看起来这确实是Cocoa应该自动完成的事情。我不知道是否这样做,但首先要检查的是窗口控制器是否正确连接到他们的文档。您的文档子类的windowControllers
属性是否包含所有正确的对象?
如果这不好,那么从NSWindow's reference看起来阻止已设置标题的窗口被添加到Windows
菜单的唯一方法是-[NSWindow setExcludedFromWindowsMenu:]
。您似乎想要在所有窗口上调用它,然后设置一个对象(可能在MainMenu
笔尖中),它处理所有窗口的位置并在Windows
菜单中进行分组(通过NSApplication
的方法)。您可能需要输入特殊的禁用项目等,以使分组看起来正确。我希望即使您之前已经要求将它们排除在外,仍然可以手动添加窗口。