过剩窗口菜单栏在MAC OSX
Glut window - menu bar in MAC OSX
是否有一种方法可以删除MAC OSX中的菜单栏项,当使用glut (glutCreateWindow("title");)创建窗口时?
或者是否有其他选择使用C/c++和glut在OSX中为OpenGL创建(无菜单)窗口?
glut正在Mac OSX上创建菜单栏项甚至键盘快捷键(只需尝试Command+S,你会感到惊讶…)。没有简单的方法可以在不访问Cocoa的情况下删除这些东西。这里的GLUT源代码显示了所有这些东西是在哪里实现的:
http://developer.apple.com/library/mac/samplecode/过剩/介绍/Intro.html
为了去掉GLUT中的菜单,您必须执行以下操作:
- #在main.cpp文件中包含"Cocoa/Cocoa.h"
- 右键单击main.cpp文件,选择"获取信息",然后在"常规"选项卡中设置"文件类型"为sourccode .cpp.objcpp 在xcode项目中包含Cocoa框架
在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/
这将设置你的应用程序,只有一个菜单中的"About…"按钮和你的应用程序名称。只是删除菜单将导致崩溃,因为GLUT期望一个菜单,并为此注册了一个回调。
我已经在网上搜索了这个问题的答案,希望这能帮助到其他遇到同样问题的人。
Glut与菜单栏无关。你可以做的是使用glutFullscreen()将应用程序置于全屏状态,然后在你的Glut窗口中定义几个视图来模拟你自己的窗口。
相关文章:
- 各种版本的 Mac OSX 向后兼容性如何?(Xcode C++
- 如何在Mac OSX中获取真实的日历微秒时间(自1970年以来的纪元)?
- 如何在Mac OSX上的Qt中使用pkcs12 / pfx成功执行SSL加密?
- Cmake Mac OSX库链接问题:在Linux上进行编译,但在Mac上进行了编译
- std::<int>betterer() 比较器与 partial_copy_sort 的困难,在 Mac OSX 上"no matching function call.."
- Opencv 未定义的符号用于架构 cv:imwrite Mac osX high Sierra.
- Allegro 5.2 TTF 插件在 Mac OSX 版本中缺失
- 如何在Mac OSX C 中找到任何过程的PID
- 在Mac OSX中,文本的大小比使用Qt的Windows小。我希望到处都有相同的尺寸
- 如何在Mac OSX上的窗口客户端内获取真实的鼠标位置?
- 代码调用反向函数不会在Ubuntu 18上的G 或Clang 上编译,但神秘地在Mac OSX上使用
- Mac OSX Deprecated API - FSRef ref;
- 在 Mac OSX 上运行 Sublime Text 3 中的 C++
- 通过Qt(mac - OSX)进行的AWS查询没有得到任何结果
- C - 在Mac OSX上获取文件路径
- QT 5.2.1无法在Mac OSX 10.8.5上构建
- clang编译器在终端Mac OSX上不起作用
- 无法在Mac OSX 10.9.1上安装bitcoinjs服务器
- 使用SCON在Mac OSX 10.9上构建
- 避免在Mac OSX -reg中进行sigpipe