gpt4 book ai didi

cocoa - 基于文档的应用程序中的不同菜单栏

转载 作者:行者123 更新时间:2023-12-03 16:37:54 24 4
gpt4 key购买 nike

我有一个基于 NSDocument 的 cocoa 应用程序,我有两种类型的文档。每个文档类型都有自己的菜单项,所有项目都在 mainmenu.xib 中定义。根据 Apple UI 指南中的定义,与文档类型无关的菜单项显示为灰色。

我有太多菜单项,因此我只想显示每个文档类型的相关项目,另一个问题是由键绑定(bind)造成的,对于文档类型 A,特定的键绑定(bind)与菜单项相关联,但对于文档类型 B,相同的键绑定(bind)关联到另一个菜单项,但这不可能,因为 XCode 检测到已使用相同的键,并且它从以前的项目定义中删除(正确)。

我想创建一个类似于 XCode 的“编辑器”菜单的菜单,当焦点位于文本窗口时它显示一些项目,而当焦点位于 IB 文件时它显示完全不同的项目集。

有最佳实践吗?例如拆分菜单。如何轻松创建类似于 XCode 的“编辑器”菜单的菜单?cocoa 给我们提供了哪些 API 来做到这一点?

最佳答案

您可以在 MainMenu.xib 中创建单独的菜单,并从 App Controller 创建它们的导出。然后,当您的文档获得焦点时(请参阅 windowDidBecomeMain ( reference )),您可以告诉应用 Controller 切换主菜单的相关部分。

通过搜寻主菜单层次结构并在正确的位置分配单独的菜单(即 [NSMenuItem setSubmenu:] ( reference ))来切换主菜单的各个部分。您可以通过使用 Interface Builder 在这些菜单项中设置标签,然后使用 [NSMenu itemWithTag:] ( reference ) 以编程方式查找它们,从而使这一过程变得更容易。

关于cocoa - 基于文档的应用程序中的不同菜单栏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13048528/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com