Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/100.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 轻触文本字段时关闭键盘_Ios_Swift_Iqkeyboardmanager - Fatal编程技术网

Ios 轻触文本字段时关闭键盘

Ios 轻触文本字段时关闭键盘,ios,swift,iqkeyboardmanager,Ios,Swift,Iqkeyboardmanager,我有一个可以编辑的文本字段。在这个文本字段下面,我有另一个文本字段,点击它我会转到另一个屏幕 当我点击第一个文本字段时,键盘就会出现。但当我点击第二个文本字段时,键盘仍然保留(可能是因为它也是一个文本字段)。但我希望键盘在我点击第二个文本字段时关闭 func textFieldShouldBeginEditing(_ textField: UITextField) -> Bool { view.endEditing(true) //with will end editing for

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

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

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
}
我正在使用
IQKeyboardManager

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

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

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

secondTextField.delegate = self 
在下面的委托方法中,您可以检查textfield并根据您的textfield返回true/false

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
}

如果第二个文本字段返回false,则第二个文本字段的键盘将不会打开。

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

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
}