clavier iPad ne fermeront pas si modal ViewController style de présentation est UIModalPresentationFormSheet

Remarque:

Voir accepté de répondre (pas top voté un) pour la solution de l'iOS 4.3.

Ce question est à propos d'un comportement découvert dans l'iPad clavier, où il refuse d'être rejetée si elle est affichée dans une boîte de dialogue modale avec une manette de navigation.

En gros, si je présente la manette de navigation avec la ligne suivante comme ci-dessous:

navigationController.modalPresentationStyle = UIModalPresentationFormSheet;

Le clavier refuse d'être rejeté. Si je commente cette ligne, le clavier va bien.

...

J'en ai deux textFields, le nom d'utilisateur et mot de passe, nom d'utilisateur a un bouton "Suivant" et le mot de passe a un bouton Terminé. Le clavier ne va pas loin si je le présente dans une modal manette de navigation.

ŒUVRES

broken *b = [[broken alloc] initWithNibName:@"broken" bundle:nil];
[self.view addSubview:b.view];

NE FONCTIONNE 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 débranche la manette de navigation de la partie et de présenter des " b " comme un modal-vue-contrôleur par lui-même, il fonctionne. Est la manette de navigation le problème?

ŒUVRES

broken *b = [[broken alloc] initWithNibName:@"broken" bundle:nil];
b.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
[self presentModalViewController:b animated:YES];
[b release];

ŒUVRES

broken *b = [[broken alloc] initWithNibName:@"broken" bundle:nil];
UINavigationController *navigationController = 
    [[UINavigationController alloc]
         initWithRootViewController:b];
[self presentModalViewController:navigationController animated:YES];
[navigationController release];
[b release];
  • La suite DONC, la question semble avoir le même problème, mais il n'y a pas de réponses: stackoverflow.com/questions/3019709/...
  • +1 Merci pour votre explication. Mais où dois-je mettre cette méthode? Il ne semble pas travailler où je créer le code pour la présentation d'un modèle de contrôleur...
  • Il doit être dans le modèle-vue-contrôleur de classe elle-même.
  • Merci. Je vois. J'ai résolu de le mettre dans une catégorie pour UINavigationController classe. Des acclamations.
  • Je suis tellement reconnaissant à vous pour cette question. J'ai été surpris de voir que resignFirstResponder était en cours d'exécution, mais le clavier toujours montré. Mon scénario (presentationFormSheet avec navig contrllr) est exactement la même que la vôtre. Merci une tonne!!
InformationsquelleAutor Kalle | 2010-07-30