Pregunta Objetivo C cómo obtener el valor numérico de una UITextPosición


Necesito obtener el valor numérico del inicio y el final de un rango UIText. Hasta ahora solo puedo imprimir la descripción como una cadena.

Al mirar el SelectedTextRange, ¿considero que es quizás una estructura? ¿Cómo obtengo un elemento de una estructura?

UITextRange *selectedRange = [myTextView selectedTextRange];

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

Aquí está la descripción:

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

9
2018-03-26 07:04


origen


Respuestas:


Hay una respuesta a una pregunta similar aquí: UITextPosition a NSRange.

Básicamente tu llamas -offsetFromPosition:toPosition: sobre el UITextRangeprincipio y final, con una posición inicial de myTextView.beginningOfDocument.


5
2018-03-26 07:18



Un UITextView se ajusta a UITextInput. Como parte de este protocolo, debe implementar y procesar sus propias subclases de UITextRange y UITextPosition. Estas no son estructuras, sino objetos.

Puede obtener una posición numérica simple mediante el uso de offSetFromPosition:toPosition: y pasando en beginningOfDocument para obtener la posición de inicio. Todos estos métodos serán implementados por UITextView. También puede pasar al inicio y al final del rango para conocer la duración de una selección.

Referencia de protocolo completo aquí.


5
2018-03-26 07:25