У меня есть UITextView
@IBOutlet weak var note: UITextView!
note.delegate = self
Текстовое представление находится внутри UIScrolLView
@IBOutlet weak var scrollView: UIScrollView!
, который я пытаюсь получить, чтобы ответить на это:
// move the scrollView when the keyboard is presented
NotificationCenter.default.addObserver(self, selector: #selector(Keyboard), name: Notification.Name.UIKeyboardWillHide, object: nil)
NotificationCenter.default.addObserver(self, selector: #selector(Keyboard), name: Notification.Name.UIKeyboardWillChangeFrame, object: nil)
что при нажатии вызывается эта функция:
@objc func adjustForKeyboard(_ notification: Notification) {
let userInfo = notification.userInfo!
let keyboardScreenEndFrame = (userInfo[UIKeyboardFrameEndUserInfoKey] as! NSValue).cgRectValue
let keyboardViewEndFrame = view.convert(keyboardScreenEndFrame, from: view.window)
if notification.name == NSNotification.Name.UIKeyboardWillHide {
scrollView.contentInset = UIEdgeInsets.zero
} else {
scrollView.contentInset = UIEdgeInsets(top: 0, left: 0, bottom: keyboardViewEndFrame.height, right: 0)
}
scrollView.scrollIndicatorInsets = scrollView.contentInset
}
То, что я хочу, это когда вы нажимаете на UITextView, если клавиатура собирается скрыть текстовое представление, содержимое прокручивается вверх, поэтомучто TextView всегда виден.Этот метод прекрасно работает для моих UITextFields, но он не работает для UITextView.
Следовал этому руководству и все еще не работает для меня.Я не уверен, использует ли он UITextView или UITextFields в видео, я думаю, что Fields.
В АВТОМАТИЧЕСКОМ РЕГУЛИРОВАНИИ UISCROLLVIEW, КОГДА КЛАВИАТУРА ВКЛЮЧЕНА (SWIFT-4, XCODE-9)
Как настроить UIScrollView под клавиатуру