我在Master-Detail设置的主人中有一个UITableView
。用户可以通过UITableViewRowAction
与单元格进行交互,或使用给定的搜索栏进行搜索。
当用户与搜索栏交互或将单元格向左滑动时,将取消选择单元格。我需要在取消选择单元格时收到通知。
我尝试了func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath)
,但它似乎没有回应这类情况。
override func tableView(_ tableView: UITableView, didDeselectRowAt indexPath: IndexPath) {
print("Cell Deselected")
}
这从未按照我上面给出的条件执行,但只有在选择tableView
中的其他项目时才会执行,这不是我需要的
答案 0 :(得分:0)
更新的回答:
当你在桌子外面选择其他响应者时,你需要抓住它。
func setEditing(_ editing: Bool, animated: Bool) {
print("Cell deselected")
}
和going into the search bar,使用此委托方法:
func searchBarShouldBeginEditing(UISearchBar)
{
print("Cell Deselected")
}
原始回答:
确保将视图控制器(或didDeselectRowAt
函数所在的任何对象)设置为表视图的delegate
。您可以在故事板中设置它,也可以以编程方式进行设置。
答案 1 :(得分:0)
您可以在类级别保留 SelectedIndexPath ,当用户触及表格外的任何位置时,您可以像这样调用此方法: -
tableView.deselectRow(at: SelectedIndexPath, animated: true)
您也可以通过以下方式接听电话:
func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
}