苹果的文档说:


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


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

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


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

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

最佳答案

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

用xcode创建一个新的Cocoa Application项目为我完成了所有这些工作,而我只需要移植文件即可。上面的代码现在按预期返回NSMenu。

关于macos - 为什么NSApplication sharedApplication mainMenu返回nil?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41831912/

10-11 07:31