为什么NSApplication sharedApplication mainMenu返回nil?

时间:2017-01-24 15:24:37

标签: macos cocoa nsmenu nsapplication nsstoryboard

Apple的文档说:

  

菜单栏中的所有应用程序菜单都由一个NSMenu拥有   应用程序启动时创建的实例。您可以   使用NSApplication方法mainMenu检索此主菜单。

我在我的委托类中有以下内容来获取应用程序的菜单:

- (void)applicationDidFinishLaunching:(NSNotification *)notification{
  NSMenu *mainMenu=[[NSApplication sharedApplication] mainMenu];
}

为什么mainMenu为零?我是在错误的时间打电话吗?将[[NSApplication sharedApplication] mainMenu]放在我的视图控制器的loadView中也会返回nil。

我想要做的就是将项目添加到应用程序菜单栏。

1 个答案:

答案 0 :(得分:1)

代码返回nil,因为关联的Storyboard没有应用程序场景/菜单栏。

使用xcode创建一个新的Cocoa Application项目为我构建了所有这些,我只需要将文件移植到其中。上面的代码现在按预期返回NSMenu。