Nota:
Vea la respuesta aceptada (no la más votada) para la solución a partir de iOS 4.3.
Esta pregunta es sobre un comportamiento descubierto en el teclado del iPad, donde se niega a ser descartado si se muestra en un diálogo modal con un controlador de navegación.
Básicamente, si presento el controlador de navegación con la siguiente línea de la siguiente manera:
navigationController.modalPresentationStyle = UIModalPresentationFormSheet;
El teclado se niega a ser descartado. Si comento esta línea, el teclado desaparece bien.
...
Tengo dos campos de texto, nombre de usuario y contraseña; el nombre de usuario tiene un botón Siguiente y la contraseña tiene un botón Listo. El teclado no desaparecerá si presento esto en un controlador de navegación modal.
TRABAJOS
broken *b = [[broken alloc] initWithNibName:@"broken" bundle:nil];
[self.view addSubview:b.view];
NO FUNCIONA
broken *b = [[broken alloc] initWithNibName:@"broken" bundle:nil];
UINavigationController *navigationController =
[[UINavigationController alloc]
initWithRootViewController:b];
navigationController.modalPresentationStyle = UIModalPresentationFormSheet;
navigationController.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
[self presentModalViewController:navigationController animated:YES];
[navigationController release];
[b release];
Si elimino la parte del controlador de navegación y presento 'b' como un controlador de vista modal por sí mismo, funciona. ¿Es el controlador de navegación el problema?
TRABAJOS
broken *b = [[broken alloc] initWithNibName:@"broken" bundle:nil];
b.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
[self presentModalViewController:b animated:YES];
[b release];
TRABAJOS
broken *b = [[broken alloc] initWithNibName:@"broken" bundle:nil];
UINavigationController *navigationController =
[[UINavigationController alloc]
initWithRootViewController:b];
[self presentModalViewController:navigationController animated:YES];
[navigationController release];
[b release];
UINavigationController
clase. Salud.
resignFirstResponder
estuviera ejecutando pero el teclado aún se mostraba. Mi escenario (presentationFormSheet con navig contrllr) es exactamente el mismo que el suyo. ¡¡Gracias una tonelada!!