c++ - 如何在 openFrameworks 中自定义 OS X 菜单栏选项?

标签 c++ objective-c xcode user-interface openframeworks

新手问题...我是 xcode 和 OpenFrameWorks 的新手,但我有 C++ 经验。我正在尝试向项目添加一个主菜单文件,但默认情况下它不会对已经存在的菜单进行任何修改。我如何告诉 xCode 使用我的 MainMenu.xib 而不是它正在使用的任何东西? 我正在使用 Xcode 4.2.1 和从网页下载的示例 openFramework 应用程序。谢谢!!!

最佳答案

目前(在 openFrameworks 0.8.0+ 中默认),openFrameworks 在 OS X 上的窗口系统中使用 GLFW。

GLFW 不加载 xibs/nibs,而是在源代码中设置菜单。您可以在此处查看 GLFW 设置菜单栏的位置:

https://github.com/glfw/glfw/blob/76afd4172727892286fe5728580021a26d198c49/src/cocoa_window.m#L738

如果你想修改 Cocoa 窗口的任何方面,GLFW 提供了一个窗口句柄,可以通过以下方式在 openFrameworks 中访问它(当然这只适用于 OS X,但 native 窗口句柄可用于X11 和 Windows 也是如此):

#include <Cocoa/Cocoa.h>

// ...
NSWindow * appWindow = (NSWindow *)ofGetCocoaWindow();
if(appWindow) {
    // make your obj-c calls here
}

此外,您可能需要确保源文件以 .mm 后缀命名或在项目设置中设置为解释为 objective-c++。

祝你好运!

关于c++ - 如何在 openFrameworks 中自定义 OS X 菜单栏选项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20090312/

相关文章:

html - 解析多个 HTML 分支 hpple

ios - 在 Cordova 配置中访问 xcode 变量

iphone - 实例化其他 View Controller 时出错

c++ - portaudio/libsndfile framesperbuffer 变量

c++ - Rad Studio 调试器线程中未处理的异常

c++ - 生成数据的类似迭代器的概念

ios - 更改 UIBarButtonItem 的 Tint 颜色

objective-c - 什么时候在 Objective-C 中使用 `self`?

ios - iPad:文件是为 armv7 构建的,它不是被链接的体系结构 (arm64)

c++ - 如何在 IntelliJ IDEA 中使用 C++?