Как «вставить» текст в UITextField? - PullRequest
3 голосов
/ 13 октября 2011

Я пытаюсь вставить текст в UITextField.Но под вставкой я имею в виду замену символа в позиции курсора новым (функциональность кнопки вставки в окнах).

Если я вручную заменяю входящую строку и выполняю setTextNO, возвращенным в shouldChangeCharactersInRange метод), курсор перемещается в конец textField.

Ответы [ 2 ]

3 голосов
/ 02 октября 2012

Для UITextField (iOS 3.2+) попробуйте:

[textField replaceRange:[textField selectedTextRange] withText:toInsert];
1 голос
/ 14 октября 2011

Вы можете заменить текст, как вы делали ранее, и восстановить положение вашей каретки.Обратите внимание, что это может быть сделано только с UITextView, а не UITextField (что потребовало бы гораздо больше необоснованной работы, если только вам абсолютно не нужно использовать UITextField):

NSRange selectionRange = myTextView.selectedRange;
myTextView.text = myNewText;
myTextView.selectedRange = selectionRange;

Вы должны отметитьчто рекомендуется проверить правильность переменной selectionRange для нового текста - убедитесь, что позиция курсора не превышает длину нового текста.

...