NSTextField,难以添加吗?我认为

时间:2011-12-03 13:49:54

标签: objective-c xcode cocos2d-iphone xcode4.2 nstextfield

我在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];

1 个答案:

答案 0 :(得分:5)

作为NSOpenGLView州的文档,它不支持子视图:

  

NSOpenGLView对象不能包含子视图。但是,您可以分割   将NSOpenGLView单个glViewport转换为使用的多个渲染区域   NSOpenGLView功能。“

虽然我不确定您是否使用自己的NSTextField子类,或者cocos2d是否提供了一个视图本身,但它可能会有相同的“限制”。

NSWindow可以位于同一个窗口中,前提是它不会与OpenGL视图重叠。

否则,您可以在单独的{{1}}中实现该部分UI。

此示例项目将对话框显示为工作表,使用OpenGL视图附加到主窗口:

enter image description here

项目:OpenGLHighScore.zip