Estamos utilizando Phonegap para desarrollar nuestra aplicación móvil, y prestado código de aquí para eliminar el siguiente/ant/barra de negro hecho desde el teclado:Phonegap: eliminar por completo la barra de negro desde el teclado del iPhone
https://stackoverflow.com/a/9276023/35364
Lo que hace ese código es encontrar la barra negra, como un objeto UIView, y llama a 'removeFromSuperview' en él.
No estamos familiarizados con el iOS SDK/API. Entonces, si bien podemos ver el código y tener una idea de lo que está haciendo, no podemos decir si lo está haciendo correctamente o cómo mejorarlo.
El problema específico que nos estamos quedando en:
Tenemos un campo de texto para escribir un mensaje, y nos está controlando manualmente la colocación de este campo para ser exactamente encima del teclado, similar a la nativa de SMS aplicación En otras palabras, lo colocamos donde se suponía que debía estar la barra negra.
Cuando enfocamos/escribimos el campo del mensaje, el sistema empuja la vista hacia arriba. Parece que este es un mecanismo para asegurarse de que el campo de texto no sea invisible cuando el usuario lo ingrese.
Esto está sucediendo aunque el campo de texto es visible.
Me di cuenta de que colocando el campo de entrada justo encima de donde estaría normalmente la barra negra (en oposición a detrás), la vista no se desplaza.
¡Parece que el sistema de alguna manera piensa que la barra negra todavía está allí!
(Para verificarlo dos veces: cuando la barra negra no se elimina, y colocamos el campo de texto justo encima de ella, podemos enfocarla y escribirla, y la vista no se desplazará).
Así que la pregunta es:
¿Por qué el "sistema" push el contenido hasta la hora de editar un campo de texto que es lugar correcto "detrás" de donde se supone que la barra de negro a ser? ¿Es porque la barra negra aún no se ha eliminado por completo? ¿Necesitamos hacer algo para eliminar "completamente" la barra negra? ¿Necesitamos obligar a iOS a volver a calcular el tamaño del teclado? o que exactamente?
¿Este mecanismo (que hace subir la vista) está implementado por UIWebView de iOS o por Phonegap?
¿Hay alguna aplicación de teléfono que haya resuelto este problema?
Gracias, esto suena como que podría funcionar. Sin embargo, una cosa es que no estoy seguro de qué se supone que es 'webb'. Intenté 'UIScrollView * webScroll = [self.webView.subviews lastObject];' pero eso no pareció funcionar. – hasen
ups, sí, fue mi webView temporal, un 'IBOutlet'. Pero debería funcionar como lo intentaste. Por favor, 'NSLog (% @, self.webView.subviews)'. Tal vez tenga más subvistas, solo tuve una (scrollView) –
Creo que 'self.webView.scrollView' también debería funcionar. – hasen