Подтвердить что ты не робот

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

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

4b9b3361

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