2013-03-26 3 views
9

Мне нужно получить числовое значение начала и конца диапазона UIText. Пока я могу распечатать описание только как строку.Цель C как получить числовое значение UITextPosition

От взгляда на 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"}> 

ответ

5

Существует ответ на аналогичный вопрос здесь: UITextPosition to NSRange.

В основном вы звоните -offsetFromPosition:toPosition: на начало и конец UITextRange, с начальным положением myTextView.beginningOfDocument.

5

UITextView соответствует UITextInput. В рамках этого протокола он должен реализовывать и обрабатывать собственные подклассы UITextRange и UITextPosition. Это не структуры, а объекты.

Вы можете получить простую цифровую позицию, используя offSetFromPosition:toPosition: и пройдя через beginningOfDocument, чтобы получить стартовую позицию. Все эти методы будут реализованы UITextView. Вы также можете перейти в начало и конец диапазона, чтобы узнать длину выделения.

Ссылка на полный протокол here.

 Смежные вопросы

  • Нет связанных вопросов^_^