Цель C, как получить числовое значение UITextPosition
Мне нужно получить числовое значение начала и конца диапазона UIText. До сих пор я могу только распечатать описание в виде строки.
Глядя на selectedTextRange, я понимаю, что это может быть структура? Как мне получить элемент структуры?
UITextRange *selectedRange = [myTextView selectedTextRange];
NSLog(@"selectedRange.start %@, selectedRange.end %@ ", selectedRange.start.description, selectedRange.end.description);
Вот описание:
2013-03-26 13:44:03.127 AttributedString[24678:907] selectedRange.start <UITextPosition: 0x1ead8f10, 8, {"Rrrttgh "}, {"gggggh ggg..."}>, selectedRange.end <UITextPosition: 0x1eaf7860, 14, {"...tgh gggggh"}, {" gggg"}>
2 ответа
Здесь есть ответ на аналогичный вопрос: UITextPosition to NSRange.
В основном вы звоните -offsetFromPosition:toPosition:
на UITextRange
начало и конец, с начальной позицией myTextView.beginningOfDocument
,
UITextView соответствует UITextInput
, Как часть этого протокола он должен реализовывать и обрабатывать собственные подклассы UITextRange и UITextPosition. Это не структуры, а объекты.
Вы можете получить простую числовую позицию, используя offSetFromPosition:toPosition:
и проходя в beginningOfDocument
чтобы получить стартовую позицию. Все эти методы будут реализованы UITextView. Вы также можете передать начало и конец диапазона, чтобы узнать длину выделения.
Полная ссылка на протокол здесь.