簡體   English   中英

出現鍵盤時快速移動屏幕

[英]swift screen move when keyboard appears

我的屏幕上有一個textview和一個文本字段,我想在編輯textview時移動屏幕。 這是我的代碼

    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

}

當我只編輯textview時,它起作用。 但是,如果我將焦點放在文本字段上之后立即編輯了textview(沒有退出鍵盤),它將無法正常工作。 我已經檢查了是否調用了textviewDidBeginEditing() ,但屏幕沒有移動。如何解決此問題? 歡迎所有建議!

我將self.view.Layoutifneeded()添加到keyboardwillchange(),它的工作原理! 謝謝大家。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM