您好我在我的应用程序中使用UIsearchBar,我尝试了UISearchBar Delegate中的所有方法来关闭键盘但没有用。任何人都可以帮助我。
我试过的一些代码
1
-(void)searchBarTextDidEndEditing:(UISearchBar *)searchBar
{
[searchBar resignFirstResponder];
}
2
-(BOOL) searchBar:(UISearchBar *)searchBar shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text {
if([text isEqualToString:@"\n"])
{
[searchBar resignFirstResponder];
return NO;
}
return YES;
}
3
- (void)searchBarCancelButtonClicked:(UISearchBar *) searchBar
{
[searchBar resignFirstResponder];
}
答案 0 :(得分:28)
首先,您应该在课堂上实施UISearchBarDelegate
&检查您是否已连接到UISearchBar
?
如果要通过IB添加UISearchBar
,则应该选择UISearchBar的委托属性到文件的所有者。您应该确保正确连接IBOutlet
代码中的UISearchBar
。
如果您要通过代码添加UISearchBar
,那么您应该自己在代码中设置代理,例如searchBar.delegate=self;
下一步是确保调用委托方法,如果你正确连接了委托,这是显而易见的,检查内容的最好方法是在代码中放置break指针或通过NSLog
进行打印。
如果要在用户点击搜索时隐藏
,最后使用此方法隐藏键盘- (void) searchBarSearchButtonClicked:(UISearchBar *)searchBar {
[searchBar resignFirstResponder];
}
或者您可以在编辑完成时尝试
- (void)searchBarTextDidEndEditing:(UISearchBar *)searchBar {
[searchBar resignFirstResponder];
}
答案 1 :(得分:9)
试试这个:
在搜索栏上设置代理并检查IBOutlet是否已连接
- (void)searchBarSearchButtonClicked:(UISearchBar *)searchBar {
[searchBar resignFirstResponder];
}