¿Cómo puedo guardar / línea de la pantalla se rompe adecuadamente en un UIWebView para el iPhone?
Pregunta
Tengo una aplicación de iPhone basado en UIWebView que lee en HTML a partir de una base de datos SQLite. El usuario puede guardar información nueva, introducida a través de un UITextView que acepta retornos de carro. ¿Cómo puedo mostrar estos retornos de carro (saltos de línea) correctamente en el UIWebView? He intentado usar algo como esto:
NSString *HTMLData = [mySQLiteDataObject text];
HTMLData = [HTMLData stringByReplacingOccurrencesOfString:@"\\n"
withString:@"<br>"];
[webView loadHTMLString:HTMLData baseURL:nil];
Sin embargo, no parece que el texto es reconocido por tener saltos de línea: el texto se muestra en una línea continua en la web View. Al imprimir el texto en la consola, se trata a través de la línea rompe intacta.
He intentado usar \ n \ r \ r \ n en el código de ejemplo anterior, sin éxito. ¿Estoy ahorrando texto del usuario de forma incorrecta, o haciendo las cosas mal en el lado de la pantalla?
Solución
Puedo ver dos barras invertidas en la cadena de búsqueda: Usted tiene que reemplazar "\n"
, no "\\n"
para que funcione
Pero realmente quiere desinfectar su entrada antes de cargarlo en el UIWebView. Por lo menos hay que enmascarar <,>, &, y".
Otros consejos
Si no me equivoco, cuando se reemplaza "\\n"
con una etiqueta de salto HTML que debe ser similar al siguiente:
HTMLData = [HTMLData stringByReplacingOccurrencesOfString:@"\\n"
withString:@"<br />"];
Parece que estaba perdiendo la barra diagonal en la sentencia break.