Affichage du keyboard et du slider, mais je ne peux pas taper dans UITextFields et UITextViews

Sur un iPad avec iOS 6 GM. J'ai 6 UITextFields, 3 UITextViews, et un UIButton qui triggers une popover / actionsheet.

Lorsque je sélectionne l'un des UITextFields ou UITextViews, le keyboard apparaît et le slider apparaît, mais je ne peux pas entrer de text. Si j'appuie sur le button UIButton pour afficher le survol, puis que je tape à l'extérieur pour le rejeter et revenir aux UITextFields ou UITextViews, ils fonctionnent.

J'ai UITextxxxx.delegate = self; set pour chacun d'eux. "Enabled" et "User Interaction Enabled" ont coché dans les files xibs, UITextFieldDelegate et UITextViewDelegate dans mon file .h ainsi que:

- (BOOL)disablesAutomaticKeyboardDismissal { return NO; } - (BOOL)textFieldShouldBeginEditing:(UITextField *)textField { return YES; } - (BOOL)textFieldShouldEndEditing:(UITextField *)textField { return YES; } - (IBAction)textFieldReturn:(id)sender { [sender resignFirstResponder]; } - (BOOL)textViewShouldBeginEditing:(UITextView *)textView { if (textView == notestextView){ [notestextView becomeFirstResponder]; } if (textView == notestextViewTwo){ [notestextViewTwo becomeFirstResponder]; } if (textView == notestextViewThree){ [notestextViewThree becomeFirstResponder]; } return YES; } - (BOOL)textViewShouldEndEditing:(UITextView *)textView { return YES; } 

J'ai même essayé de [xxxxxxx devenirFirstResponder]; dans viewDidLoad. Cela fait apparaître le keyboard et place le slider sur le champ lors de l'exécution, mais je ne peux toujours pas le taper jusqu'à ce que j'appuie sur le button UIButton pour afficher le popover.

Quelqu'un sait pourquoi je ne peux pas taper dans les champs et pourquoi l'envover "corrige" le Popover?

UPDATE 9/18: J'ai poussé une nouvelle vue dans mon application qui a juste une vue avec un textfield et un textview. Les delegates sont tous mis en place. Même comportement Clavier et slider apparaissent, mais pas de frappe. Cela exclut le popovercontroller de tout chambouler.

Je commence fortement à penser que c'est un bug iOS 6. C'est à peu près la même vue que j'avais dans la version iPhone de mon application sur iOS 4 et 5 et je n'ai jamais eu de problème. La seule différence entre la version iPhone et iPad est la façon dont l'imagepicker est présenté. Vous devez utiliser un popover pour l'iPad. C'est pourquoi je pensais que le délégué Popover avait quelque chose à voir avec ça.

Y a-t-il une différence fondamentale entre l'implémentation de UITextFields et UITextViews dans iOS 6 que je ne connais pas? Cela semble improbable.

Si cela aide mon application à circuler comme ceci:

Vue principale avec 10 buttons

  • chaque button pousse une vue de table via un controller de navigation
  • les vues de table poussent une vue détaillée – les textfields et les textviews présentent le comportement décrit ci-dessus
  • tableview a également un button d'ajout qui pousse une vue modale pour append de nouveaux éléments – les champs de text et les textviews montrent le comportement décrit ci-dessus

    Il s'agissait à l'origine d'une application iPhone embeddede à iOS 5. Pour en faire une application iPad, j'ai simplement dupliqué le projet et mis à jour toutes les versions .xibs vers iPad. Je ne sais pas si c'est un bug ou pas, ou si c'est quelque chose à voir avec la mise à niveau vers iOS 6, mais le faire comme ça gâche quelque chose avec le MainWindow.xib .

    Dans le xib MainWindow, j'ai tapé "MainViewController" pour le titre (Il était précédemment vide.)

    entrez la description de l'image ici

    Et coché "Visible at Launch" . Même si c'est déjà visible au lancement, ne pas avoir coché quelque chose.

    entrez la description de l'image ici

    Maintenant, toutes mes vues de text et champs de text fonctionnent.

    J'ai rencontré ce même problème, assurez-vous que le délégué de l'application a un [self.window makeKeyAndVisible] . Cela a résolu pour moi.

    Pour moi, votre solution ne fonctionne pas, j'en ai trouvé une autre.

    J'utilise Revmob Ads pour que l'affichage en plein écran et l'affichage de la bannière se chargent lorsque l'application est lancée. Revmob utilise du personnel pour afficher la même bannière dans tous les viewcontrollers. Quand j'ai désactivé revmob, je peux append du text à mon champ de text.

    Ceci est apparemment bug dans iOS 6. Il suffit de mettre [searchBar becomeFirstResponder]; dans la méthode searchBarTextDidBeginEditing :

     - (void)searchBarTextDidBeginEditing:(UISearchBar *)searchBar { if (!self.window.isKeyWindow) { [self.window makeKeyAndVisible]; } } 

    Cette solution fonctionne pour moi.

    Ces solutions n'ont pas fonctionné pour moi, mais après avoir supprimé le dossier de données dérivé à ~/Library/Developer/Xcode/DerivedData/AppName , cela a fonctionné.

    Pour clarifier d'autres réponses, vous ne pouvez pas entrer de text dans une window qui n'est pas définie comme la window key. La plupart des applications n'utilisent qu'une seule window, ou n'ont pas de saisie de text sur des windows supplémentaires, donc ne rencontrent jamais ce problème.

    Lorsque vous manipulez plusieurs windows, assurez-vous de resignKeyWindow + makeKeyWindow en changeant le focus et, très important, de restaurer la window de la key par la suite!

    Essayez getFirstResponder dans dispatch_async(dispatch_get_main_queue(),^{});