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
, UITextView
et UIKeyboard
dans une classe singleton. Je l'ai appelé IQKeyboardManager .
Étape 2: - Si trouvé UIKeyboardWillShowNotification
, UITextFieldTextDidBeginEditingNotification
ou des UITextViewTextDidBeginEditingNotification
notifications, essayez d'obtenir une topMostViewController
instance de la UIWindow.rootViewController
hiérarchie. Afin de bien découvrir UITextField
/ UITextView
sur celui-ci, topMostViewController.view
le cadre de s doit être ajusté.
Étape 3: - Distance de déplacement prévue calculée topMostViewController.view
par rapport à la première réponse UITextField
/ UITextView
.
Étape 4: - Déplacé topMostViewController.view.frame
vers le haut / vers le bas en fonction de la distance de déplacement attendue.
Étape 5: - Si trouvé UIKeyboardWillHideNotification
, UITextFieldTextDidEndEditingNotification
ou UITextViewTextDidEndEditingNotification
notification, essayez à nouveau d'obtenir une topMostViewController
instance de la UIWindow.rootViewController
hiérarchie.
Étape 6: - Distance perturbée calculée topMostViewController.view
dont il faut restaurer sa position d'origine.
Étape 7: - Rétabli topMostViewController.view.frame
en 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
/ UITextView
dans l'application s'ajuste automatiquement en fonction de la distance de déplacement attendue.
C'est tout