UITextField将光标设置为开始文本位置

时间:2013-04-10 16:19:22

标签: ios objective-c uitextfield

我需要移动光标以在文本字段上的设置焦点上开始文本位置。有可能吗?

3 个答案:

答案 0 :(得分:21)

将视图控制器(或其他一些适当的对象)设置为文本字段delegate,然后像这样实现textFieldDidBeginEditing:方法:

- (void)textFieldDidBeginEditing:(UITextField *)textField
{
    UITextPosition *beginning = [textField beginningOfDocument];
    [textField setSelectedTextRange:[textField textRangeFromPosition:beginning
                                                          toPosition:beginning]];
}

请注意,setSelectedTextRange:UITextInput的协议方法(UITextField实现的),因此您无法直接在UITextField文档中找到它。

答案 1 :(得分:3)

self.selectedTextRange = [self textRangeFromPosition:newPos toPosition:newPos];

选中此Finding the cursor position in a UITextField

答案 2 :(得分:3)

如果有人在Swift中寻找答案:

let desiredPosition = textField.beginningOfDocument
textField.selectedTextRange = textField.textRangeFromPosition(desiredPosition, toPosition: desiredPosition)

但我相信这只有在光标已经在文本字段中时才有效。您可以使用它来执行此操作:

textField.becomeFirstResponder()
let desiredPosition = textField.beginningOfDocument
textField.selectedTextRange = textField.textRangeFromPosition(desiredPosition, toPosition: desiredPosition)