我在工具栏按钮内的UISearchBar
内添加了UIBarButtonItem
按钮。
以下表格:
// search bar
UISearchBar *searchBar = [[UISearchBar alloc] initWithFrame:CGRectMake(0, 0, 260, 44)];
UIBarButtonItem *searchBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:searchBar];
[searchBar release];
[buttons addObject:searchBarButtonItem];
现在出现点击UISearchBar
键盘的问题。我想在点击输入或搜索按钮时隐藏键盘。我怎么能这样做?
答案 0 :(得分:9)
从UISearchBarDelegate
实施方法:
- (void)searchBarSearchButtonClicked:(UISearchBar *)searchBar {
[searchBar resignFirstResponder];
}
答案 1 :(得分:4)
您需要处理UISearchBarDelegate
protocol方法。
在以下方法中,调用UISearchBar的-resignFirstResponder
方法。
- (BOOL)searchBarShouldBeginEditing:(UISearchBar *)searchBar
- (void)searchBarSearchButtonClicked:(UISearchBar *)searchBar
- (BOOL)searchBarShouldEndEditing:(UISearchBar *)searchBar
上述委托方法的详细信息可以在the Apple official document中找到。我经常在这些委托方法中将第一个响应者辞职作为搜索的结束。
答案 2 :(得分:4)
对于Swift
func searchBarSearchButtonClicked(_ searchBar: UISearchBar) {
searchBar.resignFirstResponder()
}
答案 3 :(得分:2)
您可以使用UISEarchBar的委托方法
- (void)searchBarSearchButtonClicked:(UISearchBar *)searchBar
{
[searchBar resignFirstResponder];
}
和输入(未测试)
- (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText; // called when text changes (including clear)
{
if ([searchText isEqualToString:@"\n"])
[searchBar resignFirstResponder];
}
希望这可以帮助你...
答案 4 :(得分:1)
在头文件中,添加或连接到UISearchBar插座:应该如下所示:
@property (weak, nonatomic) IBOutlet UISearchBar *searchBarName;
然后,在实现者中添加以下内容:
self.searchBarName.delegate = self;
在viewDidLoad
函数中。
然后添加以下功能:
- (void)searchBarSearchButtonClicked:(UISearchBar *)searchBar
{
[self.searchBarName resignFirstResponder];
}
同样如上所述,确保在标题中添加/扩展了这个内容
UISearchBarDelegate
答案 5 :(得分:0)
使用[textField endEditing:YES];
,它应该适合您,或者您可以创建按钮的对象并执行[self.buttonObj resignFirstResponder]