Я хотел бы настроить смещение прокрутки при отображении клавиатуры. Как вы можете видеть в GIF, текстовые поля довольно близки к клавиатуре, и я хотел бы иметь собственную позицию. Текстовое поле «Имя» должно иметь расстояние на 50 пикселей больше, а текстовое поле «Название ссуды» должно просто прокручиваться до конца моего UIScrollView.
в состоянии прокручивать мимо клавиатуры я меняю UIScrollView
вставки. Странно iOS автоматически прокручивается к текстовому полю firstResponder (см. GIF).
override func viewDidLoad() {
NotificationCenter.default.addObserver(self, selector: #selector(keyboardWillShow), name: UIResponder.keyboardWillShowNotification, object: nil)
}
@objc func keyboardWillShow(notification: NSNotification) {
// get the Keyboard size
let userInfo = notification.userInfo!
let keyboardEndFrame = (userInfo[UIResponder.keyboardFrameEndUserInfoKey] as! NSValue).cgRectValue
// update edge insets for scrollview
self.mainScrollView.scrollIndicatorInsets.bottom = keyboardEndFrame.height - self.view.layoutMargins.bottom
self.mainScrollView.contentInset.bottom = keyboardEndFrame.height - self.view.layoutMargins.bottom
}
Я уже пытался использовать метод UITextfieldDelegate
: textFieldDidBeginEditing(_ textField: UITextField)
Я также пытался использовать описанный Apple способ здесь: { ссылка }
Ни один из этих способов не позволяет мне настроить автоматическую c позицию прокрутки. На самом деле это как бы отменяет каждую попытку. Кто-нибудь знает способ обойти это?