2013-03-26 12 views
9

Ich muss den numerischen Wert des Beginns und des Endes eines UIText-Bereichs erhalten. Bisher kann ich die Beschreibung nur als String ausdrucken.Objective C wie bekomme ich den numerischen Wert einer UITextPosition

Aus dem Blick auf die selectedTextRange, nehme ich an, dass es vielleicht eine Struktur ist? Wie bekomme ich ein Element einer Struktur? Hier

UITextRange *selectedRange = [myTextView selectedTextRange]; 

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

ist die Beschreibung:

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

Antwort

5

Es gibt eine Antwort auf eine ähnliche Frage hier: UITextPosition to NSRange.

Grundsätzlich rufen Sie -offsetFromPosition:toPosition: auf dem UITextRange Start und Ende, mit einer anfänglichen Position von myTextView.beginningOfDocument.

5

Ein UITextView entspricht UITextInput. Als Teil dieses Protokolls muss es seine eigenen Unterklassen von UITextRange und UITextPosition implementieren und verarbeiten. Dies sind keine Strukturen, sondern Objekte.

Sie können eine einfache numerische Position erhalten, indem Sie offSetFromPosition:toPosition: verwenden und beginningOfDocument übergeben, um die Startposition zu erhalten. Alle diese Methoden werden von UITextView implementiert. Sie können Anfang und Ende des Bereichs auch eingeben, um die Länge einer Auswahl zu ermitteln.

Vollständige Protokollreferenz here.

Verwandte Themen