在第二次单击文本字段时,键盘未通过键盘向上移动

时间:2018-01-23 07:17:20

标签: ios swift ios11 swift4

我有一个带登录界面的iOS应用程序(手机和密码)。让我们想象一个案例:

  1. 用户点击电话号码文本字段,出现数字键盘,键盘正在查看。
  2. 用户填写电话号码并点击密码文本字段,键盘从数字布局更改为标准。
  3. 用户点击键盘上的返回按钮,键盘关闭,视图已关闭。
  4. 用户点击电话号码文本字段或密码更长时间进行数据更正
  5. 在第4阶段,键盘出现,但是视图不再显示,当我点击键盘上的返回按钮时,视图甚至在屏幕顶部用黑线下降。我该如何解决这个问题?在代码我有这个:

    func textFieldShouldReturn(_ textField: UITextField) -> Bool {
        textField.resignFirstResponder()
        return true
    }
    

    并在viewDidLoad中:

    NotificationCenter.default.addObserver(self, selector: #selector(keyboardWillShow), name: NSNotification.Name.UIKeyboardWillShow, object: nil)
    NotificationCenter.default.addObserver(self, selector: #selector(keyboardWillHide), name: NSNotification.Name.UIKeyboardWillHide, object: nil)
    

    @objc func keyboardWillShow(notification: NSNotification) {
        if let keyboardSize = (notification.userInfo?[UIKeyboardFrameEndUserInfoKey] as? NSValue)?.cgRectValue {
            if self.view.frame.origin.y == 0 {
                self.view.frame.origin.y -= keyboardSize.height/3
            }
        }
    }
    
    @objc func keyboardWillHide(notification: NSNotification) {
        if let keyboardSize = (notification.userInfo?[UIKeyboardFrameEndUserInfoKey] as? NSValue)?.cgRectValue {
            if self.view.frame.origin.y != 0 {
                self.view.frame.origin.y += keyboardSize.height/3
            }
        }
    }
    

    enter image description here

2 个答案:

答案 0 :(得分:1)

试试这个

function VallidRcvQuantity (txtcurrentrcved) {
     var grid = document.getElementById("<%=gvGoodReceived.ClientID%>");
     var txtcurrentrcvamount = txtcurrentrcved;

     for (var i = 0; i < grid.rows.length - 1; i++) {
          var cellValue = $("#gvGoodReceived").find("tr:eq(" + i + ")").find("td:eq(2)").text();

          if (Number(txtcurrentrcvamount) > Number(cellValue)) {
              alert("Receive quantity must be less or equal PO quantity");

              return false;
          }
      }

      return true;
  }

答案 1 :(得分:1)

我建议你使用IQKeyboardmanager.It会自动处理这些事情 GitHub链接 - IQKeyboardManger