没有焦点时如何在SearchBar中单击一次取消按钮
Posted
技术标签:
【中文标题】没有焦点时如何在SearchBar中单击一次取消按钮【英文标题】:How to click Cancel button one time in SearchBar when it's not focus 【发布时间】:2016-04-26 06:05:54 【问题描述】:我在 NavigationBar 中添加了 SearchBar 视图。
[self.navigationController.view addSubview:self.searchBar];
当我搜索时...
搜索完成...
如果我想取消(删除)搜索栏,我必须点击取消按钮两次才能删除搜索栏。 (一次用于焦点搜索栏,一次用于点击取消)。
如何在 SearchBar 中一键取消类似 (x) 按钮(明文按钮)? 或 SearchBar 如何始终专注? (这样我可以点击取消来关闭搜索栏)
【问题讨论】:
您想在点击取消时隐藏取消按钮吗? 我想通过点击取消按钮一次来关闭(删除)搜索栏。 【参考方案1】:搜索后不要关闭键盘
删除这一行 [searchBar resignFirstResponder]
会有用的
【讨论】:
【参考方案2】:将搜索栏委托方法实现为:
- (void)searchBarCancelButtonClicked:(UISearchBar *) searchBar
self.navigationController.navigationBarHidden = NO;
[mySearchBar setAlpha:0.0];
希望你通过这样做得到了这个想法。如果您愿意,您也可以将其直接添加到导航控制器本身,然后单独显示/隐藏searchBar
。
【讨论】:
试试这个对你有帮助【参考方案3】:-(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];
【讨论】:
【参考方案4】:当搜索栏从第一响应者那里退出时,取消按钮被禁用。
所以你应该手动启用取消按钮。
试试这个:
[searchBar resignFirstResponder];
[(UIButton *)[searchBar valueForKey:@"_cancelButton"] setEnabled:YES];
【讨论】:
以上是关于没有焦点时如何在SearchBar中单击一次取消按钮的主要内容,如果未能解决你的问题,请参考以下文章
当 navigationItem 的 searchBar 有焦点时如何关闭 ViewController
React本机IOS,当TextInput获得焦点时,按钮按下不注册
如何使用 Jquery 使用户从确认框中的输入框中取消焦点?