执行搜索时,TextField,TextView键盘不消失

时间:2018-07-29 15:59:44

标签: ios swift uitextfield

我单击文本字段,然后出现键盘:

image here

当我单击类别页面时,它会将我引导到下一个视图控制器,如下所示:

text field still shows up like this

我已经尝试了多种方法来尝试卸下软件键盘,例如:

func textFieldDidBeginEditing(_ textField: UITextField) {
    if textField == descriptionField {
        self.view.endEditing(_:)
        descriptionField.resignFirstResponder()
        performSegue(withIdentifier: "goToCategories", sender: self)
    } else if textField == setLocationField {
        self.view.endEditing(_:)
        setLocationField.resignFirstResponder()
        performSegue(withIdentifier: "goToSelectLocation", sender: self)
    }
}

但是self.view.endEditing没有关闭键盘。我也尝试使用resignFirstResponder处理可能导致问题的文本字段,但键盘仍无法关闭。我不确定这是错误还是什么。

2 个答案:

答案 0 :(得分:0)

使用委托方法textFieldShouldBeginEditing,然后在其中检查textField == descriptionField,然后返回false。

答案 1 :(得分:0)

UITextFieldDelegate的textFieldShouldReturn(_ :)方法中辞退第一响应者就足够了。

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

func textFieldShouldReturn(_ textField:UITextField)-> Bool {   resignFirstResponder()    返回真 }

或者,视图内多个文本字段的第二个选择就是这种解决方案:

override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
    view.endEditing(true)
}