2012-09-11 25 views
5

Tengo una barra de navegación que se fija en la parte superior de la ventana cuando se desplaza. Sin embargo, cuando hago clic en una entrada y el teclado aparece, la posición fija de navegación se mueve y se queda atascada en la posición incorrecta. Cualquier forma de arreglar esto?Teclado en ios mueve mi cabezal de posición fija nav

Además, parece que no puedo cerrar el teclado haciendo clic fuera de él.

+0

¿se trata de una barra de navegación configurada en el constructor de interfaz o en una vista personalizada? no hay forma de que se pueda mover si es la barra de navegación predeterminada – jere

+0

Debe tener el código que se ejecuta cuando se muestra el teclado. Por favor publíquelo si quiere que nosotros lo ayudemos. Además, publique cualquier código que se ejecute cuando el teclado esté oculto. Y, por último, se supone que el teclado no se cierra cuando toca fuera de él. – lnafziger

+0

http://stackoverflow.com/questions/7970389/ios-5-fixed-positioning-and-virtual-keyboard y http://stackoverflow.com/questions/12550298/mobile-safari -ios-6-0-fixed-positioning-while-keyboard-showing puede ser útil – sjobe

Respuesta

0

No estoy seguro de por qué su barra de navegación se moverá. Si está subclasificando o usando un UINavigationControlller, la barra de navegación se proporcionará de manera predeterminada, pero siempre puede ocultarla. Si no lo eres y solo quieres una UINavgivationBar y no la pila de controladores de vista que obtienes con el controlador, es posible mover el marco. Sugiero usar un controlador de navegación para asegurarte de que tu barra no se mueva nunca.

Para evitar que el teclado se oculte al hacer clic en apagado. No hay una forma "automática" de hacerlo. Debe llamar explícitamente al método resignFirstResponder en una referencia guardada al campo de texto en el que hizo clic para que aparezca el teclado. La mejor manera de hacerlo es crear una propiedad NSMutableArray e implementar UITextfieldDelegate en su controlador de vista .h y poner el método - (void) textfiedDidBeginEditing: (UITextfield *) textfield Soy su .m y agregar el textfied a la matriz mutable en el interior hay. A partir de ahí debe decidir cómo el usuario cerrará el teclado IE hizo clic en el fondo. Así que la forma más fácil es agregar un UIButton gigante sin texto al fondo que llame a un método que recorre ese conjunto de caracteres mutables y llama al resignFirstResponder en todo y borra la matriz cuando termine.

o siempre puede cambiar el tipo de teclado del campo de texto para que sea uno que tenga un botón hecho.

¡La elección es suya!

Cuestiones relacionadas