Чтобы выбрать определенный диапазон символов, вы можете сделать что-то подобное в iOS 5 +
int start = 2;
int end = 5;
UITextPosition *startPosition = [self positionFromPosition:self.beginningOfDocument offset:start];
UITextPosition *endPosition = [self positionFromPosition:self.beginningOfDocument offset:end];
UITextRange *selection = [self textRangeFromPosition:startPosition toPosition:endPosition];
self.selectedTextRange = selection;
Поскольку UITextField
s и другие элементы UIKit имеют свои собственные частные подклассы UITextPosition
и UITextRange
вы не можете создавать новые значения напрямую, но вы можете использовать текстовое поле, чтобы создать их для вас из ссылки на начало или конец текста и целочисленного смещения.
Вы также можете сделать обратное кполучить целочисленные представления начальной и конечной точек текущего выбора:
int start = [self offsetFromPosition:self.beginningOfDocument toPosition:self.selectedTextRange.start];
int end = [self offsetFromPosition:self.beginningOfDocument toPosition:self.selectedTextRange.end];
Вот категория, которая добавляет методы для обработки выбора с использованием NSRange
s.https://gist.github.com/4463233