Remarque:
Voir la réponse acceptée (pas la plus votée) pour la solution à partir d'iOS 4.3.
Cette question concerne un comportement découvert sur le clavier de l'iPad, où il refuse d'être ignoré s'il est affiché dans une boîte de dialogue modale avec un contrôleur de navigation.
Fondamentalement, si je présente le contrôleur de navigation avec la ligne suivante comme ci-dessous:
navigationController.modalPresentationStyle = UIModalPresentationFormSheet;
Le clavier refuse d'être renvoyé. Si je commente cette ligne, le clavier s'en va bien.
...
J'ai deux textFields, nom d'utilisateur et mot de passe; le nom d'utilisateur a un bouton Suivant et le mot de passe a un bouton Terminé. Le clavier ne disparaîtra pas si je le présente dans un contrôleur de navigation modale.
TRAVAUX
broken *b = [[broken alloc] initWithNibName:@"broken" bundle:nil];
[self.view addSubview:b.view];
NE MARCHE PAS
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 je retire la partie contrôleur de navigation et présente «b» comme contrôleur de vue modale par lui-même, cela fonctionne. Le contrôleur de navigation est-il le problème?
TRAVAUX
broken *b = [[broken alloc] initWithNibName:@"broken" bundle:nil];
b.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
[self presentModalViewController:b animated:YES];
[b release];
TRAVAUX
broken *b = [[broken alloc] initWithNibName:@"broken" bundle:nil];
UINavigationController *navigationController =
[[UINavigationController alloc]
initWithRootViewController:b];
[self presentModalViewController:navigationController animated:YES];
[navigationController release];
[b release];
UINavigationController
classe. À votre santé.
resignFirstResponder
que le clavier était en cours d'exécution, mais le clavier était toujours affiché. Mon scénario (presentationFormSheet avec navig contrllr) est exactement le même que le vôtre. Merci beaucoup!!