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
, UITextView
und UIKeyboard
in einer Singleton - Klasse. Ich habe es IQKeyboardManager genannt .
Schritt 2: - Wenn Sie gefunden werden UIKeyboardWillShowNotification
, UITextFieldTextDidBeginEditingNotification
oder UITextViewTextDidBeginEditingNotification
Benachrichtigungen, dann versuchen zu bekommen topMostViewController
Instanz aus der UIWindow.rootViewController
Hierarchie. Um richtig aufzudecken UITextField
/ UITextView
Sie darauf topMostViewController.view
braucht ‚s Rahmen angepasst werden.
Schritt 3: - Berechnete erwartete Bewegungsentfernung in topMostViewController.view
Bezug 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
, UITextFieldTextDidEndEditingNotification
oder UITextViewTextDidEndEditingNotification
Benachrichtigung, dann versuchen Sie es erneut zu bekommen topMostViewController
Instanz aus der UIWindow.rootViewController
Hierarchie.
Schritt 6: - Berechnete gestörte Entfernung, topMostViewController.view
deren 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
/ UITextView
in der App automatisch an die erwartete Bewegungsentfernung angepasst wird.
Das ist alles