gpt4 book ai didi

c++ - Glut 窗口 - MAC OSX 中的菜单栏

转载 作者:行者123 更新时间:2023-11-30 03:06:24 25 4
gpt4 key购买 nike

当使用 glut (glutCreateWindow( "title");) 创建窗口时,有没有办法删除 MAC OSX 中的菜单栏项?

或者是否有任何其他替代方法可以使用 C/C++ 和 glut 在 OSX 中为 OpenGL 创建(无菜单)窗口?

最佳答案

glut 在 Mac OSX 上创建菜单栏项甚至键盘快捷键(只需尝试 Command+S,您会感到惊讶...)。在不访问 Cocoa 的情况下,没有简单的方法可以删除这些东西。此处的 GLUT 源代码显示了所有内容的实现位置:

http://developer.apple.com/library/mac/#samplecode/glut/Introduction/Intro.html

为了摆脱 GLUT 中的菜单,您必须执行以下操作:

  1. #include "Cocoa/Cocoa.h"在你的 main.cpp 文件中。
  2. 右键单击您的 main.cpp 文件,选择“获取信息”,然后在“常规”选项卡中将“文件类型”设置为 sourcecode.cpp.objcpp
  3. 在您的 xcode 项目中包含 Cocoa 框架
  4. 在glutInit()之后添加如下代码:

    if (NSApp){
    NSMenu *menu;
    NSMenuItem *menuItem;

    [NSApp setMainMenu:[[NSMenu alloc] init]];

    menu = [[NSMenu alloc] initWithTitle:@""];
    [menu addItemWithTitle:@"About..." action:@selector(orderFrontStandardAboutPanel:) keyEquivalent:@""];

    menuItem = [[NSMenuItem alloc] initWithTitle:@"Apple" action:nil keyEquivalent:@""];
    [menuItem setSubmenu:menu];
    [[NSApp mainMenu] addItem:menuItem];
    [NSApp setAppleMenu:menu];
    }

代码由 Tom de Grunt 从这里获得:http://www.degrunt.net/2010/09/22/using-nsmenu-outside-the-nib/

这将设置您的应用程序,在带有您的应用程序名称的菜单中只有一个“关于...”按钮。仅删除菜单会导致崩溃,因为 GLUT 需要菜单并已为其注册回调。

我在网上搜索了这个问题的答案,希望这能帮助遇到同样问题的其他人。

关于c++ - Glut 窗口 - MAC OSX 中的菜单栏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6690743/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com