IQKeyboardManager le fait pour vous sans LIGNE DE CODE , il suffit de faire glisser et déposer le fichier source associé au projet. IQKeyboardManager prend également en charge l' orientation des périphériques , la gestion automatique de la barre d'outils UIT , keyboardDistanceFromTextField et bien plus que vous ne le pensez.

Voici l'organigramme de contrôle:

Etape 1: - les notifications globales Ajout de UITextField, UITextViewet UIKeyboarddans une classe singleton. Je l'ai appelé IQKeyboardManager .
Étape 2: - Si trouvé UIKeyboardWillShowNotification, UITextFieldTextDidBeginEditingNotificationou des UITextViewTextDidBeginEditingNotificationnotifications, essayez d'obtenir une topMostViewControllerinstance de la UIWindow.rootViewControllerhiérarchie. Afin de bien découvrir UITextField/ UITextViewsur celui-ci, topMostViewController.viewle cadre de s doit être ajusté.
Étape 3: - Distance de déplacement prévue calculée topMostViewController.viewpar rapport à la première réponse UITextField/ UITextView.
Étape 4: - Déplacé topMostViewController.view.framevers le haut / vers le bas en fonction de la distance de déplacement attendue.
Étape 5: - Si trouvé UIKeyboardWillHideNotification, UITextFieldTextDidEndEditingNotificationou UITextViewTextDidEndEditingNotificationnotification, essayez à nouveau d'obtenir une topMostViewControllerinstance de la UIWindow.rootViewControllerhiérarchie.
Étape 6: - Distance perturbée calculée topMostViewController.viewdont il faut restaurer sa position d'origine.
Étape 7: - Rétabli topMostViewController.view.frameen fonction de la distance perturbée.
Étape 8: - Instance de classe IQKeyboardManager singleton instanciée lors du chargement de l'application, de sorte que chaque UITextField/ UITextViewdans l'application s'ajuste automatiquement en fonction de la distance de déplacement attendue.
C'est tout