NSApplication mainMenu返回nil

时间:2013-07-30 22:56:06

标签: objective-c cocoa nsmenu nsapplication

我遇到的问题是我无法以编程方式向我的应用添加菜单!

这是我在的地方:

在app委托中 的applicationDidFinishLaunching:

创建一个窗口,然后按键和顺序排序。

编辑:(这里如果我记录[NSApplication sharedApplication] .mainMenu print(null))无论如何......

创建一个NSMenu对象和[[NSApplication sharedApplication] setMainMenu:myMenu] 还试过[[NSApplication sharedApplication] setMenu:myMenu]

构建/运行

菜单不存在!

EDIT2: (如果仍然不理解:)。

制作一个osx应用程序,删除菜单对象,运行,你仍会看到一个带有你的应用程序名称的菜单,你点击它,它变成蓝色但没有子菜单,现在我怎么得到指针该!

1 个答案:

答案 0 :(得分:0)

由于OSX菜单符合Aqua布局,因此无法执行此操作。你有什么理由将它完全删除吗?

由于以下几个原因,这可能是一场噩梦:

1)在标准的“Aqua菜单”中,您有类似“服务”的菜单,由系统处理,而不是由应用程序处理。 2)Apple特别关注他们的设计指南,菜单没有提及,我强烈怀疑苹果会不会想要改变Aqua布局。

我记得很久以前有人提到过setAppleMenu等的讨论......但是那回到了Tiger(我想)的日子里。

编辑你将无法获得'指针;使用Documented API,它是系统驱动的,不是应用程序驱动的,即符合Aqua。

就个人而言,我会删除所有可在沙盒应用中更改的menuItem,即在User Land中,并自行添加/删除各种menuItem。