У меня проблема с использованием функции NotificationCenter.default.addObserver
, потому что у меня есть приложение 2 viewController, где второе представление отображается как всплывающее окно поверх первого
Проблема в том, что я установил наблюдателя на сдвиньте представление вверх, когда отображается клавиатура, и теперь, когда пользователь начинает вводить текст в текстовом поле представления всплывающего окна, первое представление, которое появляется в фоновом режиме, также скользит вверх, потому что оно тоже наблюдает
Я хочу знать, есть ли способ предотвратить смещение первого представления вверх, когда клавиатура отображается в представлении всплывающего окна
Это то, что я использую для перемещения представления, когда отображается клавиатура
viewDidLoad() {
NotificationCenter.default.addObserver(self, selector: #selector(keyboardWillHide), name: UIResponder.keyboardWillHideNotification, object: nil)
}
}
@objc func keyboardWillShow(notification: NSNotification) {
if let keyboardSize = (notification.userInfo?[UIResponder.keyboardFrameEndUserInfoKey] as? NSValue)?.cgRectValue {
if self.view.frame.origin.y == 0 {
self.view.frame.origin.y -= keyboardSize.frame.height + 20
}
}
}
@objc func keyboardWillHide(notification: NSNotification) {
if self.view.frame.origin.y != 0 {
self.view.frame.origin.y = 0
}
}
I иметь одинаковый код в обоих представлениях
Это ситуация
![gif of what happens](https://i.stack.imgur.com/woEkV.gif)