How can I make a UITextField move up when the keyboard is present - on starting to edit?
Con el SDK de iOS:
tengo unUIView
conUITextField
s que muestran un teclado. Lo necesito para poder:
Permitir desplazamiento de los contenidos de laUIScrollView
para ver los otros campos de texto una vez que se abre el teclado
Automáticamente "salta" (desplazándose hacia arriba) o acortando
Sé que necesito unUIScrollView
. He intentado cambiar la clase de miUIView
a unUIScrollView
pero todavía no puedo desplazar los cuadros de texto hacia arriba o hacia abajo.
Necesito tanto unUIView
y unUIScrollView
? ¿Uno va dentro del otro?
¿Qué se debe implementar para desplazarse automáticamente al campo de texto activo?
Lo ideal es que la mayor parte de la configuración de los componentes se realice en Interface Builder. Me gustaría solo escribir código para lo que lo necesite.
Nota laUIView
(oUIScrollView
) con el que estoy trabajando aparece un tabbar (UITabBar
), que necesita funcionar como normal.
Editar: Estoy agregando la barra de desplazamiento solo para cuando se levante el teclado. Aunque no es necesario, siento que proporciona una mejor interfaz porque entonces el usuario puede desplazarse y cambiar los cuadros de texto, por ejemplo.
Lo tengo funcionando donde cambio el tamaño de marco de laUIScrollView
cuando el teclado sube y baja Simplemente estoy usando:
-(void)textFieldDidBeginEditing:(UITextField *)textField {
//Keyboard becomes visible
scrollView.frame = CGRectMake(scrollView.frame.origin.x,
scrollView.frame.origin.y,
scrollView.frame.size.width,
scrollView.frame.size.height - 215 + 50); //resize
}
-(void)textFieldDidEndEditing:(UITextField *)textField {
//keyboard will hide
scrollView.frame = CGRectMake(scrollView.frame.origin.x,
scrollView.frame.origin.y,
scrollView.frame.size.width,
scrollView.frame.size.height + 215 - 50); //resize
}
Sin embargo, esto no se "mueve" hacia arriba ni se centra automáticamente en los campos de texto inferiores en el área visible, que es lo que realmente me gustaría.