UITextField устанавливает курсор на начальную позицию текста
Мне нужно переместить курсор, чтобы начать положение текста на установленный фокус на текстовом поле. Возможно ли это сделать?
3 ответа
Решение
Установите свой контроллер представления (или некоторый другой соответствующий объект) как текстовое поле delegate
и реализовать textFieldDidBeginEditing:
метод как это:
- (void)textFieldDidBeginEditing:(UITextField *)textField
{
UITextPosition *beginning = [textField beginningOfDocument];
[textField setSelectedTextRange:[textField textRangeFromPosition:beginning
toPosition:beginning]];
}
Обратите внимание, что setSelectedTextRange:
это метод протокола UITextInput
(который UITextField
реализует), так что вы не найдете его непосредственно в UITextField
документация.
Если кто-то ищет ответ в 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)
self.selectedTextRange = [self textRangeFromPosition:newPos toPosition:newPos];
Проверьте это Нахождение позиции курсора в UITextField