iOS - работа с невозможностью установить позицию курсора в UITextField - PullRequest
2 голосов
/ 04 января 2011

Я работаю над приложением, которое будет использовать пользовательскую клавиатуру для ввода текста.На клавиатуре должны быть клавиши «вперед» и «назад».

Некоторые охотятся на SO и предполагают, что невозможно программно установить позицию курсора в UITextField.

Я смотрел на использование UITextView вместо этого.Это позволяет установить позицию курсора.Но поведение прокрутки становится чрезвычайно раздражающим.

Мне интересно, знает ли кто-нибудь о хорошем обходном пути.По сути, я хочу что-то, что имеет текст и курсор, и я могу программно установить положение курсора.

РЕДАКТИРОВАТЬ: Интересно, если у меня есть UITextField в симуляторе и я нажимаю клавишу со стрелкой вперед или назад на моемклавиатура Mac, курсор перемещается вперед или назад.Тем не менее, я не вижу способа имитировать это поведение на устройстве.,,или, если на то пошло, щелчком мыши на экране симулятора.

Ответы [ 2 ]

4 голосов
/ 09 мая 2012

Принятый ответ был верным в то время, но сейчас устарел. В iOS 5 UITextField соответствует протоколу UITextInput. Поэтому положение курсора можно установить с помощью свойства selectedTextRange.

0 голосов
/ 04 января 2011

Я также использую UITextView для самой цели установки позиции курсора.

Если вы подкласс UITextView (который сам по себе является специализацией UIScrollView), вы можете переопределить «scrollingEnabled» и вернуть NO:

- (BOOL) scrollingEnabled   
{
    return NO;
}

Мне также пришлось поиграть со свойствами contentInset и contentOffset, чтобы получить именно то, что я хотел.

...