Cocoa 跨多个NSMenuItems共享NSMenuItems

Cocoa 跨多个NSMenuItems共享NSMenuItems,cocoa,interface-builder,nsmenu,Cocoa,Interface Builder,Nsmenu,我在同一个应用程序中有多个菜单,希望在它们之间共享子菜单 为了简单起见,假设一个是主菜单,另一个是dock tile菜单 我有一些子菜单,其中包含很多项(比如字体名称),其中许多项出于各种原因需要保留一个iboutlet引用 在IB中,我找不到任何“共享”这些子菜单的方法,因此我最终复制了IB定义(即在两个不同的位置手动重新创建每个项),保留了对两个nsmenuitems的引用,而不仅仅是一个,等等。。这不好 有没有办法在多个NSMENU之间共享子菜单定义 我曾尝试在IB中创建顶级菜单项,但似乎

我在同一个应用程序中有多个菜单,希望在它们之间共享子菜单

为了简单起见,假设一个是主菜单,另一个是dock tile菜单

我有一些子菜单,其中包含很多项(比如字体名称),其中许多项出于各种原因需要保留一个iboutlet引用

在IB中,我找不到任何“共享”这些子菜单的方法,因此我最终复制了IB定义(即在两个不同的位置手动重新创建每个项),保留了对两个nsmenuitems的引用,而不仅仅是一个,等等。。这不好

有没有办法在多个NSMENU之间共享子菜单定义

我曾尝试在IB中创建顶级菜单项,但似乎无法将其与菜单定义中的任何内容链接。此外,我还担心,即使我能够通过编程实现这一点,也可能会打乱绑定、响应程序层次结构、内存管理等


有这样做的最佳实践吗?有人做过吗?结果如何?

如果同一控制器是所有菜单项的目标,则将其设置为其委托,并让其具体实现NSMenuDelegate协议,菜单中的
numberofitems:
菜单:updateItem:atIndex:shoulldcancel:
方法。每个菜单都会询问您应该有多少项,创建尽可能多的项来填补赤字,然后要求您填写这些项(包括设置他们的行动和可能的目标)

结果是在代码中定义两个菜单的一个位置