当按下输入或用户触摸其他地方时,UISearchBar
不会关闭键盘。
我需要使用iOS键盘右下方的移除键盘按钮才能移除键盘并调用:
- (void)searchBarTextDidEndEditing:(UISearchBar *)aSearchBar
我该如何解决?
答案 0 :(得分:21)
- (void)searchBarTextDidEndEditing:(UISearchBar *)aSearchBar {
[aSearchBar resignFirstResponder];
}
您还必须为UISearchBar设置委托: UISearchBarDelegate
它应该有用。
另一个选项是我们可以使用的searchBarSearchButtonClicked。
- (void)searchBarSearchButtonClicked:(UISearchBar *)searchBar
{
[searchBar resignFirstResponder];
// You can write search code Here
}
答案 1 :(得分:12)
在.h
中添加 UISearchBarDelegate同样将SearchBar的对象委托设置为自我。
你应该添加UISearchBarDelegate
的方法:
- (void)searchBarSearchButtonClicked:(UISearchBar *)searchBar
{
[searchBar resignFirstResponder];
// Do the search...
}
编辑:以上无效,请添加:
[self.view endEditing:YES];
答案 2 :(得分:3)
单击返回按钮时,使用以下代码段关闭/隐藏键盘。
- (BOOL)searchBar:(UISearchBar *)searchBar shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text
{
if([text isEqualToString:@"\n"])
{
[searchBar resignFirstResponder];
return NO;
}
return YES;
}
答案 3 :(得分:3)
会隐藏,还有另一个取消功能,但是当用户点击取消时可能想要搜索另一个单词时使用它是不好的...
func searchBarSearchButtonClicked(searchBar: UISearchBar) {
searchBar.resignFirstResponder()
}
答案 4 :(得分:0)
它会起作用 -
目标c -
- (void)searchBarSearchButtonClicked:(UISearchBar *)searchBar{
[searchBar resignFirstResponder];
}
斯威夫特 -
func searchBarSearchButtonClicked(searchBar: UISearchBar) {
searchBar.resignFirstResponder()
}