Получение оставшегося текста после вырезания выделения

Есть ли простой способ получить оставшийся текст после вырезания выделения? Позвольте мне предположить, что у меня есть элемент управления textview с надписью «Привет, Джим». Если выбран «Джим», я хочу сохранить «Hello» в переменной, «без использования [textview1 cut:self]. В следующем коде я могу получить другую часть.

UITextRange *selectedTextRange = textview1.selectedTextRange;
NSUInteger location = [textview1 offsetFromPosition:textview1.beginningOfDocument toPosition:selectedTextRange.start];
NSUInteger length = [textview1 offsetFromPosition:selectedTextRange.start toPosition:selectedTextRange.end];
NSRange selectedRange = NSMakeRange(location, length);
NSString *str = [textview1.text substringWithRange:selectedRange];
NSLog(@"%@",str);

Конечно, это другая часть.

Спасибо за помощь.


person El Tomato    schedule 08.04.2013    source источник


Ответы (2)


Я думаю, что это что-то вроде следующего. (пересмотрено)

NSMutableString *str = [NSMutableString stringWithString:@""];
if (textview1.text.length > length) {
    [str appendString:[textview1.text substringToIndex:location]];
    [str appendString:[textview1.text substringFromIndex:location + length]];
} else {
    [str appendString:@""];
}
[self setText:str];
person El Tomato    schedule 08.04.2013

person    schedule
comment
Спасибо. Я бы не стал этого делать, поскольку возможно, что содержимое текстового просмотра может содержать несколько копий выбранной фразы. - person El Tomato; 09.04.2013
comment
Вы заменяете только диапазон текста, а не текстовое значение. - person sixthcent; 09.04.2013