Редактируемый NSTextField на Mac в проекте Cocos2d - PullRequest
1 голос
/ 26 февраля 2012

Я пытаюсь отобразить редактируемый NSTextField на Mac в проекте Cocos2d.Я запускаю весь свой тестовый код прямо из AppDelegate, чтобы сделать тест простым и устранить все побочные эффекты.Код ниже показывает красное окно с хорошим полем редактирования.Проблема в том, что поле выглядит без фокуса (выделение текста серым) и недоступно для редактирования (без курсора и без реакции на нажатия клавиш).Я могу изменить выделение текста с помощью мыши, но это все.

Любой намек на то, что случилось?

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
    CCDirectorMac *director = (CCDirectorMac*) [CCDirector sharedDirector];
    [glView_ setFrameSize:NSMakeSize(1024,768)]; 
    [director setOpenGLView:glView_];
    [director setResizeMode:kCCDirectorResize_AutoScale];
    [glView_ setFrameSize:NSMakeSize(window_.frame.size.width,window_.frame.size.height-20)]; 
    [window_ setContentAspectRatio:NSMakeSize(1024,768)];
    [window_ setAcceptsMouseMovedEvents:NO];

    [self addOverlayWindow];

    //[director runWithScene:[MCGameScene scene]/*[HelloWorldLayer scene]*/];
}

- (void) addOverlayWindow;
{
    NSRect windowRect = [[window_ contentView] frame] ;
    NSWindow* uiWindow  = [[NSWindow alloc]  initWithContentRect:windowRect
                                     styleMask:NSBorderlessWindowMask
                                       backing:NSBackingStoreBuffered defer:YES];
    [uiWindow setBackgroundColor: [NSColor redColor/*clearColor*/]];
    [uiWindow setOpaque:NO];

    NSView* uiView = [[[NSView alloc] initWithFrame:NSMakeRect(0, 0, windowRect.size.width, windowRect.size.height)] autorelease];
    [uiView translateOriginToPoint:NSMakePoint(100, uiView.bounds.size.height/2)];
    uiView.wantsLayer   = YES;

    [uiWindow setContentView:uiView];

    NSTextField *textField;
    textField = [[NSTextField alloc] initWithFrame:NSMakeRect(0, 0, 800, 80)];
    [textField setFont:[NSFont fontWithName:@"Helvetica Bold" size:60]];
    [textField setStringValue:@"My XXXXXXXXX Label"];
    [textField setBezeled:YES];
    [textField setDrawsBackground:YES];
    [textField setEditable:YES];
    [textField setSelectable:YES];
    [textField setEnabled:YES];

    [uiView addSubview:textField];

    // None of these combinations works...
    //    [textField becomeFirstResponder];
    //    [uiWindow setInitialFirstResponder:textField];
//    [uiWindow makeFirstResponder:textField];
    //[window_ makeFirstResponder:textField];
      [window_ setInitialFirstResponder:textField];
//    [uiView setInitialFirstResponder:textField];
    //    [uiView makeFirstResponder:textField];

    [window_ addChildWindow:uiWindow ordered:NSWindowAbove];
}

Заранее спасибо за помощь, --Josef

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...