Estoy intentando un editor de texto enriquecido (con capacidad de exportación HTML) para una aplicación de iPhone en la que estoy trabajando, y decidí usar el soporte WebKit de iOS 5 para contentEditable
/designMode
. He golpeado una pared con un problema que se está rompiendo por lo que necesito. Al editar el contenido en UIWebView, no hay desplazamiento automático para seguir el cursor, como, por ejemplo, en UITextView. Al escribir, el cursor continúa debajo de scrollView y el usuario tiene que desplazarse hacia arriba manualmente.Desplazamiento automático cuando contentEditable/designMode en un UIWebView
Aquí hay un código relevante:
- (void)webViewDidFinishLoad:(UIWebView *)webView
{
NSString *string = @"document.body.contentEditable=true;document.designMode='on';void(0)";
[webView stringByEvaluatingJavaScriptFromString:string];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow:) name:UIKeyboardWillShowNotification object:nil];
}
Alguna idea de cómo solucionar este problema? No estoy seguro si esto también ocurre en Safari o solo en la implementación de WebKit UIWebView
.
Si llega a este problema, asegúrese de cabeza a https://bugreport.apple.com y duplicar rdar: // 16455638.
Quiero explorar esta ruta, pero me preocupa porque esas son clases privadas, creo (en realidad no documentadas). ¿Tuviste algún problema cuando enviaste esta aplicación? ¿Hay formas "seguras" de hacer esto y cosas que evitar? Al igual que, ¿tiene que crear un UIWebView y luego reparent las vistas, vs crear estas otras clases directamente - para evitar el rechazo de la tienda de aplicaciones? – eselk
@eselk Utilizamos muchos trucos, como el método swizzling, ISA swizzling, etc. En este caso, es mucho más simple. Tomamos la subvista desde la vista de desplazamiento, que está expuesta en la API pública y la agregamos a otra vista de desplazamiento, que está bajo nuestro control. –
@LeoNatan ¿Puedes escribir algún código para lo mismo? – iDhaval