ios - UITapGestureRecognizer 在 Swift 的 SearchField 类中破坏了 UITableView didSelectRowAtIndexPath?

标签 ios swift uitableview uisearchbar uitapgesturerecognizer

我将这个用于搜索文本字段

https://github.com/apasccon/SearchTextField

这是我的代码:

  override func viewDidLoad() {
    super.viewDidLoad()


    self.view.addGestureRecognizer(UITapGestureRecognizer(target: self, action: Selector("dismissKeyboard")))


}

func dismissKeyboard()
{
    ClientList.resignFirstResponder()
    self.view.endEditing(true)

}

关闭键盘正在工作,但没有调用 didSelectRowAtIndexPath,所以我无法选择任何内容

引用图片:enter image description here

我完成的部分解决方案:

func hideKeyboard(gestureRecognizer: UIGestureRecognizer) {
        let point = gestureRecognizer.locationInView(ClientList.tableView)
        let indexPath = ClientList.tableView!.indexPathForRowAtPoint(point)

        if indexPath != nil {
            return
        }
        if ClientList.becomeFirstResponder() {
            ClientList.resignFirstResponder()
        }

    }

但现在的问题是我还有其他列表,我该如何实现其他列表?

最佳答案

你可以这样解决这个问题

ViewDidLoad

self.tap = UITapGestureRecognizer(target: self, action: "viewTapped:")
self.tap.delegate = self
self.view.addGestureRecognizer(self.tap)

函数

func gestureRecognizer(gestureRecognizer: UIGestureRecognizer, shouldReceiveTouch touch: UITouch) -> Bool {
    if touch.view != nil && touch.view!.isDescendantOfView(self.tableView) {
        return false
    }
    return true
}

关于ios - UITapGestureRecognizer 在 Swift 的 SearchField 类中破坏了 UITableView didSelectRowAtIndexPath?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38954428/

相关文章:

ios - UINavigationBar 设置背景图像中心 swift..?

swift - vapor:地址已在使用中(错误号:98)

ios - UIScrollViewDelegate 中的委托(delegate)方法不响应 TableView 滚动事件

ios - 在 Swift 中从 UITableviewControllers 调用时定位 subview

swift - UITableViewAutomaticDimension 的最小单元格高度

ios - 将 uitabbar 实现到 uitableview

ios - 如何访问mod包中的mom文件?

iphone - .nib 文件的多个版本

ios - Objective-C : Strange behavior when using NSString and __weak with ARC

ios - 将数据写入文件