IQKeyboardManager tun dies für Sie mit NO Codezeile , nur zu ziehen müssen und damit verbundene Quelle Projektdatei löschen. IQKeyboardManager auch unterstützen Geräteausrichtung , automatische UIToolbar - Management , keyboardDistanceFromTextField und viel mehr , als Sie denken.

Hier ist das Kontrollflussdiagramm:

Schritt 1: - Hinzugefügt globale Meldungen von UITextField, UITextViewund UIKeyboardin einer Singleton - Klasse. Ich habe es IQKeyboardManager genannt .
Schritt 2: - Wenn Sie gefunden werden UIKeyboardWillShowNotification, UITextFieldTextDidBeginEditingNotificationoder UITextViewTextDidBeginEditingNotificationBenachrichtigungen, dann versuchen zu bekommen topMostViewControllerInstanz aus der UIWindow.rootViewControllerHierarchie. Um richtig aufzudecken UITextField/ UITextViewSie darauf topMostViewController.viewbraucht ‚s Rahmen angepasst werden.
Schritt 3: - Berechnete erwartete Bewegungsentfernung in topMostViewController.viewBezug auf die zuerst beantwortete UITextField/ UITextView.
Schritt 4: -topMostViewController.view.frame Entsprechend der erwarteten Bewegungsentfernung nach oben / unten bewegt.
Schritt 5: - Wenn Sie gefunden werden UIKeyboardWillHideNotification, UITextFieldTextDidEndEditingNotificationoder UITextViewTextDidEndEditingNotificationBenachrichtigung, dann versuchen Sie es erneut zu bekommen topMostViewControllerInstanz aus der UIWindow.rootViewControllerHierarchie.
Schritt 6: - Berechnete gestörte Entfernung, topMostViewController.viewderen ursprüngliche Position wiederhergestellt werden muss.
Schritt 7: - WiederhergestellttopMostViewController.view.frame Entsprechend der gestörten Entfernung .
Schritt 8: - Instanziierte Singleton- IQKeyboardManager- Klasseninstanz beim Laden der App, sodass jedes UITextField/ UITextViewin der App automatisch an die erwartete Bewegungsentfernung angepasst wird.
Das ist alles