Ứng dụng của tôi sử dụng UISearchDisplayController
. Khi người dùng đã nhập cụm từ tìm kiếm, tôi muốn nó vẫn hiển thị trong thanh tìm kiếm. Điều này hoạt động nếu người dùng chọn một trong các kết quả phù hợp, nhưng không phải nếu người dùng nhấp vào nút 'Tìm kiếm'.Hiển thị cụm từ tìm kiếm khi UISearchDisplayController không hoạt động
này hoạt động:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
if (tableView == self.searchDisplayController.searchResultsTableView) {
NSString *selectedMatch = [self.searchMatches objectAtIndex:indexPath.row];
[self.searchDisplayController setActive:NO animated:YES];
[self.searchDisplayController.searchBar setText:selectedMatch];
return;
}
...
Nhưng nếu tôi làm điều tương tự trong -searchBarSearchButtonClicked:
văn bản không còn vào thanh tìm kiếm. Bất kỳ ý tưởng về cách tôi có thể thực hiện điều này trong tình huống này?
Có liên quan, nếu tôi đặt văn bản của thanh tìm kiếm (nhưng để lại UISearchDisplayController
không hoạt động), điều này sẽ kích hoạt hiển thị searchResultsTableView. Tôi chỉ muốn cho thấy rằng khi người dùng chạm vào thanh tìm kiếm.
Edit: Tìm thấy một workaround để thiết lập các văn bản của một thanh tìm kiếm mà không thấy searchResultsTableView bất cứ lúc nào:
// This hacky YES NO is to keep results table view hidden (animation required) when setting search bar text
[self.searchDisplayController setActive:YES animated:YES];
[self.searchDisplayController setActive:NO animated:YES];
self.searchDisplayController.searchBar.text = @"text to show";
Better gợi ý vẫn hoan nghênh!
Ah cảm ơn! Tôi đã làm '[self.searchController setActive: NO animated: YES]; self.searchController.searchBar.text = searchBar.text; 'nhưng rõ ràng' searchBar.text' không còn là cái mà tôi nghĩ là do phương thức 'setActive' làm rỗng thanh tìm kiếm. –