2012-02-01 12 views
5

Quiero reemplazar el texto en el texto UITextView en el rango seleccionado. Esta es mi pregunta. Aquí menciono lo que hice? y que quiero hacer? Tengo una UITextView e ingresé el texto a continuación en la vista de texto.¿Cómo reemplazar el texto en UITextView con el rango seleccionado?

Ask question here, he guardado el rango del texto en la vista de texto. El rango de texto es {17, 0}. Tomo el NSRange en el delegado -(void) textViewDidChange:(UITextView *)textView.

Ahora quiero reemplazar el texto question con answer y quiero reemplazar el texto here con them. The UITextView.text look like this, Pedir Respuesta them` después de sustituir los textos.

¿Cómo puedo reemplazar los textos con los rangos seleccionados? ¿Podrías ayudarme? Gracias por adelantado.

Respuesta

4

Bueno ... No estoy seguro de entender correctamente lo que estás tratando de hacer, pero si su objetivo es cambiar algunos caracteres en un rango seleccionado puede seguir estos pasos:

Obtenga su contenido UITextView y ponerlo en un NSString:

NSString *textViewContent = textView.text; 

cambiar los caracteres en el rango que desea:

NSString *newContent = [textViewContent stringByReplacingCharactersInRange:range withString:replacement]; 

Reemplazar el contenido antiguo por uno nuevo:

textView.text = newContent; 

De todos modos, si lo que desea es reemplazar haga la pregunta aquí con Haz responderlas la solución más rápida es simplemente:

textView.text = @"Ask answer them"; 
0

solución bien desde la parte superior de mi cabeza ..

NSArray *Dividedstring = [[self.TextView.text] componentsSeparatedByString:@" question here "]; // this will divide the string into two parts ..one before question here and second after question here. 
NSString * firstpart = [Dividedstring objectAtIndex:0]; 
NSString * secondpart = [Dividedstring objectAtIndex:0]; 

self.TextView.text = [NSString stringwithFormat:@"%@ answer here %@",firstpart,secondpart]; 
8

Desde iOS 7 hay textStorage en textView que hereda de NSMutableAttributedString para que pueda usar esos métodos:

[self.textView.textStorage replaceCharactersInRange:withString:]; 

o

[self.textView.textStorage replaceCharactersInRange:withAttributedString:]; 
+0

que estaba buscando a través de muchas de las respuestas, pero este es el único que me ayudó a evitar el desplazamiento automático de Textview arriba cada vez que cambio de texto en ella. Funciona perfectamente. – nshuman

Cuestiones relacionadas