【问题标题】:Dismiss keyboard on tapping textfield在点击文本字段时关闭键盘
【发布时间】:2021-03-24 21:35:18
【问题描述】:

我有一个可以编辑的文本字段。在此文本字段下方,我有另一个文本字段,点击它可以转到另一个屏幕。

当我点击第一个文本字段时,键盘会出现。但是当我点击第二个文本字段时,键盘仍然存在(可能是因为它也是一个文本字段)。但我希望键盘在我点击第二个文本字段时关闭。

我正在使用IQKeyboardManager

这就是我所拥有的……但它不起作用……

@IBAction func secondTextfield_Clicked(_ sender: Any) {
        (sender as! UITextField).resignFirstResponder()
         
        self.performSegue(withIdentifier: "mySegue", sender: nil)
}

【问题讨论】:

    标签: ios swift iqkeyboardmanager


    【解决方案1】:

    首先,您需要将委托设置为第二个文本字段并实现textFieldShouldBeginEditing 委托方法。

    secondTextField.delegate = self 
    

    在以下委托方法中,您可以检查文本字段并根据您的文本字段返回真/假。

    func textFieldShouldBeginEditing(_ textField: UITextField) -> Bool {
    
       view.endEditing(true) //with will end editing for the view
       if textField == secondTextField {
            self.performSegue(withIdentifier: "mySegue", sender: nil)
            return false
        }
        return true
    }
    

    通过为 secondTextField 返回 false,将不会为第二个文本字段打开键盘。

    【讨论】:

      【解决方案2】:

      首先,您为什么要使用文本字段转到另一个页面? 你为什么不直接使用按钮 第二件事,如果你愿意,你可以这样做:

      override func viewDidLoad() {
           super.viewDidLoad()
           ...
           secondTF.delegate = self
           ...
      }
      

      并在代码中的任何位置调用此函数:

      func textFieldShouldBeginEditing(_ textField: UITextField) -> Bool {
         view.endEditing(true) 
         if textField == secondTF {
              // Navigate to the second VC with using storyBoard or navigationController
              return false
          }
          return true
      }
      

      【讨论】:

        猜你喜欢
        • 2017-08-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-02-24
        • 2020-02-09
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多