[[NSdocumentController shareddocumentController] noteNewRecentdocumentURL: [NSURL fileURLWithPath:filename]]
现在我还想在上下文d出菜单中添加第二个“Open Recent”菜单.如何以编程方式创建菜单,以便自动填充条目,就像对状态菜单中的版本一样?
我尝试在状态菜单中创建一个副本,但它没有填充.我假设NSdocumentController不知道菜单(坦率地说,我不知道它是如何知道状态菜单中的那个).
解决方法 作为参考,我找到的有关Open Recent菜单内部工作原理的最佳文档是:http://lapcatsoftware.com/blog/2007/07/10/working-without-a-nib-part-5-open-recent-menu/
不幸的是,它对此没有多大帮助,因为即使你创建这样的菜单,它也会被NSdocumentController忽略.在applicationDIDFinishLaunching:call之前,菜单必须存在于主菜单中,否则它将不会被拾取 – 因此,也会忽略重复的菜单.
我到底做了什么,到目前为止似乎有用的是:
第一个想法是从主菜单中选择相应的NSMenu并将其附加到其他菜单中,希望引用计数将使其工作.没有这样的运气,如果子菜单已经在另一个NSMenuItem中,则setSubmenu会抛出.
所以我重新“重新显示”子菜单 – 当我需要在另一个菜单中显示它时,我将其从主菜单的“打开最近”项目中删除,并将其设置为新菜单中的子菜单.后来,我把它搬回来了.当然,这是一个丑陋的黑客,但它完成了工作.
总结以上是内存溢出为你收集整理的cocoa – 以编程方式将“Open Recent”菜单添加到上下文d出菜单中全部内容,希望文章能够帮你解决cocoa – 以编程方式将“Open Recent”菜单添加到上下文d出菜单中所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)