быстрое движение экрана при появлении клавиатуры - PullRequest
0 голосов
/ 24 июня 2018

У меня есть текстовое поле и текстовое поле на моем экране, и я хочу переместить экран при редактировании текстового обзора.Это мой код

    override func viewWillAppear(_ animated: Bool) {
    super.viewWillAppear(animated)

    NotificationCenter.default.addObserver(self, selector: #selector(keyboardWillShow(_:)), name: .UIKeyboardWillShow, object: nil)

 //   NotificationCenter.default.addObserver(self, selector: #selector(keyboardWillHide(_:)), name: .UIKeyboardWillHide, object: nil)

    print("addd observer")

}
override func viewWillDisappear(_ animated: Bool) {
    super.viewWillDisappear(animated)
    NotificationCenter.default.removeObserver(self, name: .UIKeyboardWillShow, object: nil)
 //   NotificationCenter.default.removeObserver(self, name: .UIKeyboardWillHide, object: nil)
}

@objc func keyboardWillShow(_ sender: Notification) {
    let keyboardSize = (sender.userInfo?[UIKeyboardFrameEndUserInfoKey] as? NSValue)?.cgRectValue
    print("keyboardwillshow")
    ksize = keyboardSize?.height

}


@objc func textViewDidBeginEditing(_ textView: UITextView) {
        print("textviewedit")
        boxview.frame.origin.y -= ksize
        print("textview")



}
@objc func textViewDidEndEditing(_ textView: UITextView) {

    print("textvieweditend")
    boxview.frame.origin.y = 0

}

Это работает, когда я просто редактирую текстовое представление.Однако, если я редактирую текстовое представление сразу после фокусировки на текстовом поле (без клавиатуры выхода), это не сработает.Я уже проверил, что textviewDidBeginEditing() вызывается, но экран не двигается .. Как я могу решить это?Все советы приветствуются!

1 Ответ

0 голосов
/ 24 июня 2018

Я добавляю self.view.Layoutifneeded() к keyboardwillchange (), и это работает !! спасибо всем.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...