NSTextField, это сложно добавить?Я думаю - PullRequest
0 голосов
/ 03 декабря 2011

Я сделал небольшую игру в 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 Ответ

5 голосов
/ 05 декабря 2011

Как указано в документации для NSOpenGLView, он не поддерживает подпредставления:

"Объект NSOpenGLView не может иметь подпредставлений. Однако вы можете разделить один NSOpenGLView на несколько областей рендеринга, используя glViewport функция. "

Хотя я не уверен, используете ли вы свой собственный подкласс NSOpenGLView, или cocos2d предоставляет само представление, но оно, вероятно, будет иметь те же «ограничения».

NSTextField может находиться в том же окне, при условии, что оно расположено так, что не перекрывает представление OpenGL.

В противном случае вы можете просто реализовать эту часть интерфейса в отдельном NSWindow.

В этом примере проекта диалоговое окно отображается в виде листа, прикрепленного к главному окну с представлением OpenGL:

enter image description here

Проект: OpenGLHighScore.zip

...