web-dev-qa-db-fra.com

Une erreur UIWindow endDisablingInterfaceAutorotationAnimated apparaît dans la console lorsque le clavier est désactivé de manière interactive à partir de collectionView dans iOS9 uniquement.

Je reçois cette erreur étrange dans iOS9 uniquement:

[UIWindow endDisablingInterfaceAutorotationAnimated:] called on UITextEffectsWindow: ...without matching
-beginDisablingInterfaceAutorotation. Ignoring.

À tout moment, je ferme le clavier de manière interactive en le faisant glisser depuis ma collectionView. Je ne reçois pas l'erreur en fermant le clavier d'un geste ou en appuyant sur Entrée. C'est très frustrant. Même si je n'observe aucune notification de clavier, j'obtiens toujours cette erreur lors de ce renvoi de clavier interactif. Je me demande si quelqu'un d'autre a rencontré cette erreur et a trouvé une solution. J'ai un inputAccessoryView consistant en un textView monté sur le clavier.

55
alionthego

J'ai eu le même problème sur iOS9 mais avec une tableView. J'ai implémenté ce avec self.tableView.keyboardDismissMode = .Interactive et cela a fonctionné pour moi.

// Dismiss keyboard when scrolling
func scrollViewWillBeginDragging(scrollView: UIScrollView) {
    textView.resignFirstResponder()
}
25
vandit

J'ai rencontré ce problème et cela a gâché mon point de vue. Voici comment je le résous.

Je présentais un viewController présenté le textFieldShouldBeginEditing. Dans viewController, une textField a été définie sur becomeFirstResponder dans viewDidLoad

La solution pour moi consiste à déplacer la becomeFirstResponder à viewDidAppear.

1
okysabeni

Si c'est lors de la présentation/de la suppression d'animations de transition, vérifiez que 

transitionContext.completeTransition(!transitionContext.transitionWasCancelled)

n'est pas appelé plusieurs fois ... erreur facile à faire.

0
slimbikr