我是编程的新手,也是这个论坛的新手。我的堆栈视图有问题。一旦我实现了堆栈视图: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()
}
}
}
我做错了什么?如何在保持堆栈视图的同时让键盘解除功能再次工作?
答案 0 :(得分:0)
尝试删除touchesBegan
函数中的所有内容,然后在其中添加self.view.endEditing(true)
。我在UIStackView中的文本字段中尝试了此操作,这一行完成了所有操作。
Swift 4.1:
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
self.view.endEditing(true)
}