我正在尝试同时使用MDCTextField和表格视图。 MDCTextField
过滤表格视图,然后用户应点击一个单元格,并关闭键盘并隐藏表格视图。问题在于,键盘关闭并且表视图在表视图注册轻击单元格之前被隐藏。在MDCTextField
注册抽头之前,我该如何注册一个单元格被点击?
答案 0 :(得分:0)
我使用此扩展名,可以将其放置在helpers.swift文件中,但是这种方式可以在任何UIViewController上使用
extension UIViewController {
func hideKeyboardWhenTappedAround() {
let tap: UITapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(UIViewController.dismissKeyboard))
tap.cancelsTouchesInView = false
view.addGestureRecognizer(tap)
}
@objc func dismissKeyboard() {
view.endEditing(true)
}
}
要使用它,只需在viewDidLoad()上添加此self.hideKeyboardWhenTappedAround()
根据评论进行编辑
理论上,以下代码应该会有所帮助,但我还没有进行测试,我读到人们无法触发touchBegan函数,但我也不知道其他方法你想要的。
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
if let touch = touches.first {
let position = touch.location(in: view)
if let ip = tableView.indexPathForRow(at: position) {
let cell = tableView.cellForRow(at: ip)
print(cell.text)
}
}
}
理论如下
首先我们获得敲击发生的位置,然后我们获得被录音的行(如果存在)的索引路径,因为有了索引路径我们就可以得到单元格。
在我给您的示例中,我打印了单元格文本,但是您可以执行所需的任何其他操作
我希望这是您想要的,并且因为我没有进行测试,并且似乎有人在触发touchesBegan函数时遇到问题,所以您可以使其正常工作