UITextField установил курсор для начала текстовой позиции

Мне нужно переместить курсор, чтобы начать текстовое положение, чтобы установить фокус на текстовое поле. Возможно ли это сделать?

Ответ 1

Установите в качестве текстового поля delegate контроллер вида (или какой-либо другой соответствующий объект) и реализуйте метод textFieldDidBeginEditing: следующим образом:

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

Обратите внимание, что setSelectedTextRange: - это метод протокола UITextInput (который реализуется UITextField), поэтому вы не найдете его непосредственно в документации UITextField.

Ответ 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)