【发布时间】:2013-12-26 14:28:09
【问题描述】:
我正在寻找创建一个 searchBar,虽然我在我的表格视图上有点工作,但仍然需要一些努力才能使其 100% 完美。
参考 iOS 7 Mail.app,我该如何部署类似的东西?因此,在您单击搜索栏之前,搜索栏不会显示“取消”按钮,而取消按钮会取消搜索并将表格返回到原来的位置。
我有以下代码:
- (void)searchBarSearchButtonClicked:(UISearchBar *)searchBar
{
_fetchedResultsController = nil;
NSError *error;
if (![[self fetchedResultsController] performFetch:&error])
{
NSLog(@"Error in search %@, %@", error, [error userInfo]);
}
else
{
[self.timelineTableView reloadData];
[self.timelineSearchBar resignFirstResponder];
[self.noResultsLabel setHidden:_fetchedResultsController.fetchedObjects.count > 0];
}
}
- (void)searchBarCancelButtonClicked:(UISearchBar *)searchBar
{
[self.timelineSearchBar resignFirstResponder];
self.timelineSearchBar.hidden = YES;
[self.timelineTableView reloadData];
[self viewDidLoad];
}
因此,我基本上希望 searchBar 在表格视图中始终可见,并且在用户开始输入之前不显示取消按钮。如果他们执行搜索并产生结果或没有结果,我希望取消按钮:
- 搜索栏的ResignFirstResponder
- 移除取消按钮
- 将表格视图恢复到搜索前的状态。
谢谢
【问题讨论】:
-
您可以使用对象库中的搜索栏控制器,而不仅仅是搜索栏。默认情况下,它有你想要的。
-
您可以使用此链接并查看示例代码。 developer.apple.com/library/iOs/samplecode/AdvancedTableSearch/…
-
谢谢你们 - 下面接受的答案帮助我不需要使用 searchdiplaycontroller - 再次感谢您的回复
标签: ios objective-c uisearchbar resignfirstresponder