【问题标题】:NSApplication mainMenu returns nilNSApplication mainMenu 返回 nil
【发布时间】:2013-07-30 22:56:06
【问题描述】:

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

这就是我所在的地方:

在应用程序委托中 applicationDidFinishLaunching:

创建一个窗口,并将键和命令放在前面。

编辑:(如果我登录 [NSApplication sharedApplication].mainMenu prints (null) )无论如何...

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

构建/运行

菜单不存在!

编辑2: (如果还是不明白:)

制作一个 osx 应用程序,删除菜单对象,运行,您仍然会在那里看到一个带有您的应用程序名称的菜单,您单击它,它变成蓝色但没有子菜单,现在我如何获得指向的指针那个!

【问题讨论】:

    标签: objective-c cocoa nsmenu nsapplication


    【解决方案1】:

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

    这可能会成为一场噩梦,原因如下:

    1) 在标准的“水族菜单”中,您有类似“服务”的菜单,这些菜单由系统处理,而不是由应用程序处理。 2) Apple 对他们的设计指南进行了具体说明,并且没有提及菜单,我非常怀疑 Apple 是否希望您更改 Aqua 布局。

    我记得曾经有一次讨论提到 setAppleMenu 等...但那是在 Tiger(我认为)时代。

    edit 你将无法获得'指针;使用已记录的 API 对其进行处理,它是系统驱动的,而不是应用程序驱动的,即遵守 Aqua。

    就个人而言,我会删除所有可以在沙盒应用程序中更改的菜单项,即在用户空间中,然后自己添加/删除各种菜单项。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-10-06
      • 1970-01-01
      • 1970-01-01
      • 2013-02-18
      • 2019-06-20
      • 2017-12-16
      • 2014-09-27
      • 2017-06-11
      相关资源
      最近更新 更多