2013-03-26 9 views
9

Potrzebuję uzyskać wartość liczbową początku i końca zakresu UIText. Do tej pory mogę wydrukować opis jako ciąg.Cel C jak uzyskać wartość liczbową UITextPosition

Patrząc na selectedTextRange, uważam, że to może być struktura? Jak uzyskać element struktury?

UITextRange *selectedRange = [myTextView selectedTextRange]; 

NSLog(@"selectedRange.start %@, selectedRange.end %@ ", selectedRange.start.description, selectedRange.end.description); 

Oto opis:

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"}> 

Odpowiedz

5

Jest to odpowiedź na podobne pytanie tutaj: UITextPosition to NSRange.

Zasadniczo wywołuje się -offsetFromPosition:toPosition: na początku i końcu UITextRange, z początkową pozycją myTextView.beginningOfDocument.

5

UITextView jest zgodny z UITextInput. W ramach tego protokołu musi implementować i przetwarzać własne podklasy UITextRange i UITextPosition. To nie są elementy, ale obiekty.

Możesz uzyskać prostą pozycję numeryczną, używając offSetFromPosition:toPosition: i podając w beginningOfDocument, aby uzyskać pozycję początkową. Wszystkie te metody będą implementowane przez UITextView. Możesz także podać początek i koniec zakresu, aby określić długość selekcji.

Pełny opis protokołu here.