Вы можете заменить текст, как вы делали ранее, и восстановить положение вашей каретки.Обратите внимание, что это может быть сделано только с UITextView
, а не UITextField
(что потребовало бы гораздо больше необоснованной работы, если только вам абсолютно не нужно использовать UITextField
):
NSRange selectionRange = myTextView.selectedRange;
myTextView.text = myNewText;
myTextView.selectedRange = selectionRange;
Вы должны отметитьчто рекомендуется проверить правильность переменной selectionRange
для нового текста - убедитесь, что позиция курсора не превышает длину нового текста.