我在Xcode 4.2中制作了小游戏。
在我玩完所有游戏关卡后,将出现高分输入窗口。我想在这里添加NSTextField,因此播放器可以通过键盘输入他的名字。
我将NSTextField
添加到OpenGlView,但我无法在屏幕上看到它。这有什么关系?我还尝试添加子视图并添加NSTextField
,但我得到了相同的结果。
Xcode4.2,模拟器是My Mac - 32bit。
NSView *view = [[NSView alloc] initWithFrame:NSRectFromCGRect(CGRectMake(0, 0, 480, 320))];
[[[CCDirector sharedDirector] openGLView] addSubview:view];
[[view layer] setZPosition:1];
//
NSTextField *textField = [[NSTextField alloc] initWithFrame:NSRectFromCGRect(CGRectMake(0, 0, 100, 40))];
[view addSubview:textField];
答案 0 :(得分:5)
作为NSOpenGLView
州的文档,它不支持子视图:
“
NSOpenGLView
对象不能包含子视图。但是,您可以分割 将NSOpenGLView
单个glViewport
转换为使用的多个渲染区域NSOpenGLView
功能。“
虽然我不确定您是否使用自己的NSTextField
子类,或者cocos2d是否提供了一个视图本身,但它可能会有相同的“限制”。
NSWindow
可以位于同一个窗口中,前提是它不会与OpenGL视图重叠。
否则,您可以在单独的{{1}}中实现该部分UI。
此示例项目将对话框显示为工作表,使用OpenGL视图附加到主窗口: