我添加了GestureRecognizer用于隐藏键盘,当用户单击到没有textview的视图中的任何位置时。它的工作正常,但是CollectionView Cells需要两次轻按才能工作,当我删除GestureRecognizer时,它的工作正常,但我需要两者。我已经在几个小时内进行了搜索,并尝试了很多解决方案,但是一切都没有用。
GestureRecognizer,用于在用户单击到没有文本视图的视图中的任何位置时隐藏键盘;
let tapRecognizer = UITapGestureRecognizer(target: self, action: #selector(handleTap))
tapRecognizer.cancelsTouchesInView = false
view.addGestureRecognizer(tapRecognizer)
@objc func handleTap() {
textBody.endEditing(true)
}
答案 0 :(得分:1)
您可以尝试以下方法:
public override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
view.endEditing(true) // or textBody.endEditing(true)
}
答案 1 :(得分:0)
要同时识别两个手势,请通过删除cancelsTouchesInView
行使用以下代码。您可能需要根据需要为collectionView
添加另一个轻击手势。或使用scrollViewDidScroll
的{{1}}事件隐藏键盘。
collectionView