NSTextField是第一个响应者,但在键入之前我仍然必须在文本框内单击

Ian*_*n K 3 cocoa objective-c nsview nstextfield first-responder

我的最终目标是默认选择NSTextField,允许用户在不首先单击文本字段的情况下开始输入.

我有一个由NSViewController控制的视图.该视图包含多个文本字段.NSView和NSWindow都是自定义子类.文本字段不是子类.只是一个标准的NSTextField.

在视图控制器的awakeFromNIB里面我有代码:

[[[NSApplication sharedApplication] mainWindow] makeFirstResponder:firstBox];
NSLog(@"%@",NSStringFromClass([[[[NSApplication sharedApplication] mainWindow] firstResponder] class]));
Run Code Online (Sandbox Code Playgroud)

文本字段围绕它获得一个焦点环,并且NSLog打印出第一个响应者是NSTextField但我仍然必须在文本字段内单击才能开始输入.

什么可能导致该领域成为第一响应者但不可编辑?有没有更好的方法我应该调用makeFirstResponder?

Mic*_*ann 7

在CocoaDev.com上发现了一个可能有用的提示,尝试这样做:

[[[NSApplication sharedApplication] mainWindow] 
    performSelector: @selector(makeFirstResponder:) 
         withObject: firstBox 
         afterDelay:0.0];
Run Code Online (Sandbox Code Playgroud)