gpt4 book ai didi

Swift 3.0 TapGesture 摆脱键盘且不干扰表格 View

转载 作者:行者123 更新时间:2023-11-28 06:19:19 25 4
gpt4 key购买 nike

我查看了以前关于摆脱键盘和不干扰表格 View 的问题,并找到了以下代码:

override func viewDidLoad() {
super.viewDidLoad()

searchBar.delegate = self


let tapGesture = UITapGestureRecognizer(target: self, action: #selector(AddressVC.hideKeyboard))
tapGesture.cancelsTouchesInView = false
//searchResultsTableView.addGestureRecognizer(tapGesture)
self.view.addGestureRecognizer(tapGesture)

}
func hideKeyboard()
{
self.view.endEditing(true)
}

似乎当我在模拟器中运行它时,当我轻轻点击 tableViewCell 时,它注册为关闭键盘的点击而不是对 tableView 的点击。但是,如果我在模拟器中点击并按住更长的时间,它将关闭键盘并注册为 tableView 的 didSelectAtRow。我想知道是否有代码可以处理这个问题(或可以做同样事情的类似代码),或者这根本不是问题,而且模拟器不如实际手机敏感。 (我目前无法设置我的实际手机进行测试。)

最佳答案

didSelectRow 在点击并按住而不是点击手势识别器时被调用的原因是因为它被视为长按手势,并且由于没有定义长按手势识别器,触摸被转移到查看下面。因此,一个可能的解决方案是您同时添加一个 tapGesture 识别器和一个长按手势识别器,并在两个选择器上调用 **self.view.endEditing(true)**。但是,请确保在此之后删除手势识别器,以便之后能够与 tableView 进行交互。

@IBAction func tappedOutside(_ sender: UITapGestureRecognizer) {
self.view.endEditing(true)
self.view.removeGestureRecognizer(sender)
}

@IBAction func longPressOutside(_ sender: UILongPressGestureRecognizer) {
self.view.endEditing(true)
self.view.removeGestureRecognizer(sender)
}

关于Swift 3.0 TapGesture 摆脱键盘且不干扰表格 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44192887/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com