关注NSTextField

Jee*_*ena 16 cocoa objective-c

我有一个NSTextField,我想设置它的内容,如果我点击一个按钮,而不是将光标设置在文本末尾的文本字段上,所以如果有人点击按钮,他就可以开始输入.

到目前为止,我使用[NSTextField selectText]它选择了这个文本字段,但是它选择了整个文本,所以如果有人刚开始输入,他就会丢失所有在文本字段中的文本.

小智 33

甚至更容易

[yourTextField becomeFirstResponder];
Run Code Online (Sandbox Code Playgroud)

  • 此方法在10.5中已弃用,此外,如果您阅读此方法的文档,则会明确指出"从不直接调用此方法". (14认同)
  • 好的,Alan,我刚刚删除了一堆使用10.8 SDK直接使用becomeFirstResponder的异常调用. (2认同)

Jee*_*ena 20

好的我现在发现了:)

- (IBAction)focusInputField:(id)sender {
    [textField selectText:self];
    [[textField currentEditor] setSelectedRange:NSMakeRange([[textField stringValue] length], 0)];  
}
Run Code Online (Sandbox Code Playgroud)

在RubyCocoa中它是:

def select_input_field
    @input.selectText self
    range = OSX::NSRange.new(@input.stringValue.length, 0)
    @input.currentEditor.setSelectedRange range
end
Run Code Online (Sandbox Code Playgroud)


mac*_*osh 8

你会想做这样的事情:

[[self window] makeFirstResponder:[self yourTextField]];
Run Code Online (Sandbox Code Playgroud)