Я использую следующий код для имитации нажатия клавиши в UITextView (а также для установки прокрутки в положение вставки):
NSRange selectedRange = textview.selectedRange;
NSString *currentText = textview.text;
NSString *yourString = @"x";
NSString *firstPart = [currentText substringToIndex: selectedRange.location];
NSString *lastPart = [currentText substringFromIndex: selectedRange.location];
NSString *modifiedText = [firstPart stringByAppendingFormat:@"%@%@", yourString, lastPart];
textview.text = modifiedText;
NSInteger loc = selectedRange.location + 1;
NSInteger len = textview.selectedRange.length;
NSRange newRange = NSMakeRange(loc, len);
textview.selectedRange = newRange;
Как вы можете видеть, я делю textview.text,я вставляю @ "x" в позицию курсора и изменяю весь текст.На самом деле, это прекрасно работает, если длина текстового файла не велика.И это звучит логично, учитывая, что я делю все это на части и так с каждым симулируемым ключом.
Так что с небольшим текстовым файлом у меня нет никаких проблем, но с большим я могу видеть значительное отставание.
Есть ли способ сделать это с лучшей производительностью?