Я создал расширение UIScrollView
где, когда пользователь выбирает текстовое поле и появляется клавиатура, текстовое поле будет прокручивать вверх, если он находится в пути клавиатуры. У меня он работает на UITextField
, но он не работает с UITextView
. Я искал много сообщений в stackoverflow, но не мог найти ничего, что могло бы помочь. Вот код для расширения:UITextView избежать клавиатуры прокрутки
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
}
На мой взгляд, контроллер я бы просто установить его люблю:
scrollView.respondToKeyboard()
Может кто-то мне точку в правильном направлении, как я могу реализовать UITextView
как расширение для перемещения вверх, если клавиатура в пути?
Спасибо за эту ссылку. Итак, прямо сейчас у меня есть расширение ** UIScrollView **, следует ли изменить расширение так, чтобы это расширение ** UITextView ** и ** UITextField **? @iOS Geek – coderdojo
Просто думая, что это может быть лучшим способом сделать это вместо того, чтобы – coderdojo
@coderdojo - Вы бы не нужно расширение, если вы обращаетесь с клавиатурой с делегацией в контроллере представления. –