Ich habe eine Erweiterung von UIScrollView
erstellt, wo, wenn ein Benutzer ein Textfeld auswählt und die Tastatur angezeigt wird, das Textfeld nach oben scrollen, wenn es in der Art der Tastatur ist. Ich habe es für eine UITextField
funktioniert, aber es scheint nicht mit einem UITextView
zu arbeiten. Ich habe viele Posts auf stackoverflow durchsucht, kann aber nichts finden, was hilft. Hier ist der Code für die Erweiterung:UITextView vermeiden Tastatur Scrollen
extension UIScrollView {
func respondToKeyboard() {
self.registerForKeyboardNotifications()
}
func registerForKeyboardNotifications() {
// Register to be notified if the keyboard is changing size i.e. shown or hidden
NSNotificationCenter.defaultCenter().addObserver(
self,
selector: #selector(keyboardWasShown(_:)),
name: UIKeyboardWillShowNotification,
object: nil
)
NSNotificationCenter.defaultCenter().addObserver(
self,
selector: #selector(keyboardWillBeHidden(_:)),
name: UIKeyboardWillHideNotification,
object: nil
)
}
func keyboardWasShown(notification: NSNotification) {
if let info = notification.userInfo,
keyboardSize = info[UIKeyboardFrameBeginUserInfoKey]?.CGRectValue.size {
self.contentInset.bottom = keyboardSize.height + 15
self.scrollIndicatorInsets.bottom = keyboardSize.height
var frame = self.frame
frame.size.height -= keyboardSize.height
}
}
func keyboardWillBeHidden(notification: NSNotification) {
self.contentInset.bottom = 0
self.scrollIndicatorInsets.bottom = 0
}
In meiner Ansicht-Controller würde ich es genau wie ein:
scrollView.respondToKeyboard()
Kann mir jemand zeigen in die richtige Richtung, wie ich die UITextView
als implementieren Verlängerung nach oben, wenn die Tastatur im Weg ist?
Vielen Dank für diesen Link. So, jetzt habe ich eine Erweiterung von ** UIScrollView **, sollte ich die Erweiterung ändern, so dass es eine Erweiterung von ** UITextView ** und ** UITextField ** ist? @ iOS Geek – coderdojo
Nur denken, es könnte ein besserer Weg sein, es stattdessen zu tun – coderdojo
@coderdojo - Sie würden keine Erweiterung benötigen, wenn Sie die Tastatur mit Delegation in Ihrem View-Controller behandeln. –