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