personalizar - teclados para iphone 4 ios 7
Mostrando el teclado en el momento adecuado iOS7 (1)
En iOS 6 estoy acostumbrado a presentar el teclado en viewDidLoad
.
- (void)viewDidLoad
{
[super viewDidLoad];
[txtField becomeFirstResponder];
}
De esta forma, cuando navigationController empuja el nuevo viewController, el teclado ya está allí, animando suavemente de izquierda a derecha y evitando la animación ascendente.
En iOS 7, este comportamiento parece estar roto.
Si agrego [txtField becomeFirstResponder]
en viewDidLoad
, el teclado aparece en medio de la animación, ya en su posición final: ¡un efecto desagradable!
Intenté mover [txtField becomeFirstResponder]
en viewWillAppear
, pero el resultado final no se modificó.
¿Conoces una forma de recuperar el comportamiento de iOS 6, empujando el nuevo viewController y el teclado todos juntos?
EDITAR: El uso de un temporizador tampoco funciona ... cualquier retraso que establezca, el teclado solo se muestra al final de la animación.
Hasta ahora, mi mejor intento es poner [txtField becomeFirstResponder]
en viewWillLayoutSubviews
o viewDidLayoutSubviews
. Lamentablemente, al hacerlo funciona al presionar viewController, pero no al hacer clic (el teclado no aparece).
Pude extrapolar su solución alternativa en viewWillLayoutSubviews
para forzarlo a funcionar.
- (void)viewWillLayoutSubviews {
if (![self.textField1 isFirstResponder] && ![self.textField2 isFirstResponder] && ...) {
[self.textField1 becomeFirstResponder];
}
}
Esto funciona para mí tanto para empujar a la pila, y después de descartar un controlador de vista modal.