NSTextField,难以添加吗?我认为

bTa*_*ger 0 xcode objective-c nstextfield cocos2d-iphone xcode4.2

我在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];
Run Code Online (Sandbox Code Playgroud)

NSG*_*God 5

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

" NSOpenGLView对象不能有子视图.但是,您可以NSOpenGLView使用该glViewport功能将单个分割为多个渲染区域 ."

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

NSTextField可以位于同一窗口中,前提是它的位置不会与OpenGL视图重叠.

否则,您可以单独实现UI的该部分NSWindow.

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

在此输入图像描述

项目:OpenGLHighScore.zip