Cocos2d-x OS X 应用程序菜单

Cocos2d-x OS X application menus

我有一个 cocos2d-x 应用程序,我主要在 iOS 上调试它。现在我在 OS X 方面工作。

正如预期的那样,除了我的 iOS 应用程序中的一些手势命令不会转换为 OS X 之外,一切都几乎相同。

我想创建菜单项(OS X 级别)和关联的快捷方式来完成一些手势交互(至少作为一个选项)。

创建 MainMenu.xib 并在项目设置中链接它似乎并不是全部。菜单仍然是通用的 "AppName" 和 Window 菜单,而不是我在 xib 文件中创建的菜单。

我相信我需要以某种方式将它连接到 AppDelegate,但我不确定如何,而且我还没有成功找到这方面的文档,至少在它如何与 Cocos2d-x.

本质上,您只需要在从 AppDelegate.cpp 或任何地方调用的 Objective-C++ class 中创建菜单。扩展名将是 .mm 以便调用 objective-c compiler/runtime。然后您可以创建 NSMenu 并添加项目或替换整个菜单集[ServiceMenu/WindowMenu/MainMenu]

NSMenu 参考:https://developer.apple.com/library/mac/documentation/Cocoa/Reference/ApplicationKit/Classes/NSMenu_Class/index.html)

我发现唯一有趣的部分是从菜单中接收一个动作,我相信您还需要在其中创建一个 objective-c class 作为接收者(目标)。

您应该能够加载 .xib 文件作为一个全新的菜单来替换 GLFW3 创建的菜单,但我还没有研究过。

更新:这是一个示例项目。

https://github.com/stevetranby/TestNSMenuCocos2Dx

更新: 向项目添加了使用 .xib 加载菜单的示例