我正在编写一个带有附带的UITableView的UISearchBar,以使用Apple的NLP套件,Mapkit等来建议相关位置。目标是当用户选择其中的一行时,地图将缩放至纬度和经度。但是,我遇到了一个问题,当尝试选择建议的行时,函数searchBarShouldEndEditing()在didSelectRowAt()隐藏tableView之前执行,不允许用户选择该行。我可以指定在这种情况下首先要执行哪个功能吗?
override func viewDidLoad(){
searchBar.delegate = self
searchTableView.delegate = self
searchTableView.dataSource = self
searchCompleter.delegate = self
}
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
let searchRequest = MKLocalSearchRequest(completion: mapItems[indexPath.row])
let search = MKLocalSearch(request: searchRequest)
search.start { (response, error) in
let coordinate = response?.mapItems[indexPath.row].placemark.coordinate
self.zoomToLatestLocation(with: coordinate!)
self.searchTableView.isHidden = true
}
}
func searchBarShouldEndEditing(_ searchBar: UISearchBar) -> Bool {
print(1)
self.searchTableView.isHidden = true
return true
}