我在NavigationBar中添加了SearchBar视图。
[self.navigationController.view addSubview:self.searchBar];
我正在搜索...
搜索已完成......
如果我想取消(删除)SearchBar,我必须点击取消按钮两次以删除SearchBar。 (一次用于焦点SearchBar,一次用于点击取消)。
如何在SearchBar中轻按一下取消(x)按钮(明文按钮)? 或SearchBar如何始终关注? (通过这种方式,我可以点击取消,只需轻轻一按TapB)
答案 0 :(得分:1)
答案 1 :(得分:0)
将搜索栏委托方法实现为:
- (void)searchBarCancelButtonClicked:(UISearchBar *) searchBar {
self.navigationController.navigationBarHidden = NO;
[mySearchBar setAlpha:0.0];
}
希望你能做到这一点。您也可以直接将其添加到导航控制器本身,如果您需要&然后单独显示/隐藏searchBar
。
答案 2 :(得分:0)
-(void)searchDisplayControllerDidBeginSearch:(UISearchDisplayController *)controller
{
controller.active = YES;
[self.view addSubview:controller.searchBar];
[self.view bringSubviewToFront:controller.searchBar];
}
- (void)searchDisplayController:(UISearchDisplayController *)controller didShowSearchResultsTableView:(UITableView *)tableView {
tableView.frame = self.archiveListTblView.frame;
}
- (void)searchDisplayControllerDidEndSearch:(UISearchDisplayController *)controller
{
controller.active=NO;
[self.view addSubview:controller.searchBar];
}
答案 3 :(得分:0)
搜索栏已从第一响应者中退出后,取消按钮将被禁用。
因此,您应该手动启用“取消”按钮。
尝试一下:
[searchBar resignFirstResponder];
[(UIButton *)[searchBar valueForKey:@"_cancelButton"] setEnabled:YES];