当使用过剩(glutCreateWindow(“title”)创建窗口时,有没有办法删除MAC OSX中的菜单栏项?)?
还是有其他替代方法可以使用C / C ++和过剩来为OSX中的OpenGL创建(无菜单)窗口吗?
答案 0 :(得分:3)
过剩是在Mac OSX上创建菜单栏项甚至键盘快捷键(只需尝试Command + S,你就会感到惊讶......)。没有访问Cocoa就没有简单的方法来删除这些东西。 此处的GLUT源代码显示了所有这些内容的实现位置:
http://developer.apple.com/library/mac/#samplecode/glut/Introduction/Intro.html
为了摆脱GLUT中的菜单,您必须执行以下操作:
在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需要一个菜单,并为此注册了一个回调。
我在网络上搜索以获得答案,并希望这会帮助遇到同样问题的其他人。
答案 1 :(得分:0)
Glut与菜单栏无关。您可以做的是使用glutFullscreen()将应用程序置于全屏,然后在Glut窗口中定义多个视口以模拟您自己的窗口。