Stackviews和解雇键盘

时间:2018-04-24 07:59:59

标签: view keyboard stack dismiss

我是编程的新手,也是这个论坛的新手。我的堆栈视图有问题。一旦我实现了堆栈视图:https://i.stack.imgur.com/7Lgf0.png我的代码解雇键盘停止工作。当我按下文本框时,键盘出现,我可以输入值。在文本框外单击时,键盘仍然存在。没有堆栈视图一切都很好..这是解雇键盘的代码:

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

    func textFieldDidEndEditing(_ textField: UITextField) {


       }

    // dismiss keyboard on touch outside textfield
   override func touchesBegan(_ touches: Set<UITouch>, with event:   UIEvent?) {
    for txt in self.view.subviews {
        if txt.isKind(of: UITextField.self) && txt.isFirstResponder {
            txt.resignFirstResponder()
                                                                    }
                                  }
                                                                                    }

我做错了什么?如何在保持堆栈视图的同时让键盘解除功能再次工作?

1 个答案:

答案 0 :(得分:0)

尝试删除touchesBegan函数中的所有内容,然后在其中添加self.view.endEditing(true)。我在UIStackView中的文本字段中尝试了此操作,这一行完成了所有操作。

Swift 4.1:

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