UISearchBar
在按下回车键或用户点击其他位置时不会隐藏键盘。
我需要使用iOS键盘右下角的“删除”按钮来隐藏键盘并执行以下操作:
- (void)searchBarTextDidEndEditing:(UISearchBar *)aSearchBar
我该如何修复这个问题?
UISearchBar
在按下回车键或用户点击其他位置时不会隐藏键盘。
我需要使用iOS键盘右下角的“删除”按钮来隐藏键盘并执行以下操作:
- (void)searchBarTextDidEndEditing:(UISearchBar *)aSearchBar
我该如何修复这个问题?
- (void)searchBarTextDidEndEditing:(UISearchBar *)aSearchBar {
[aSearchBar resignFirstResponder];
}
同时你需要为UISearchBar设置代理:UISearchBarDelegate
这应该可以工作。
还有一个选项是我们可以使用searchBarSearchButtonClicked事件。
- (void)searchBarSearchButtonClicked:(UISearchBar *)searchBar
{
[searchBar resignFirstResponder];
// You can write search code Here
}
在 .h 文件中添加 UISearchBarDelegate。
同时将 SearchBar 对象的代理对象设置为 self。
你还应该添加 UISearchBarDelegate
的方法:
- (void)searchBarSearchButtonClicked:(UISearchBar *)searchBar
{
[searchBar resignFirstResponder];
// Do the search...
}
编辑:如果以上方法不起作用,请添加以下内容:
[self.view endEditing:YES];
针对swift 1.2版本,当你点击完成时键盘会自动隐藏。另外有一个取消功能,但是不建议使用,因为用户可能想要搜索另一个单词...
func searchBarSearchButtonClicked(searchBar: UISearchBar) {
searchBar.resignFirstResponder()
}
- (BOOL)searchBar:(UISearchBar *)searchBar shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text
{
if([text isEqualToString:@"\n"])
{
[searchBar resignFirstResponder];
return NO;
}
return YES;
}
它会工作 -
Objective-C -
- (void)searchBarSearchButtonClicked:(UISearchBar *)searchBar{
[searchBar resignFirstResponder];
}
Swift -
func searchBarSearchButtonClicked(searchBar: UISearchBar) {
searchBar.resignFirstResponder()
}