嗨我在我的应用程序中使用UIsearchBar,我尝试了UISearchBar Delegate中的所有方法来解除键盘但没有用.任何人都可以帮助我.
我试过的一些代码
1.
-(void)searchBarTextDidEndEditing:(UISearchBar *)searchBar
{
[searchBar resignFirstResponder];
}
Run Code Online (Sandbox Code Playgroud)
2.
-(BOOL) searchBar:(UISearchBar *)searchBar shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text {
if([text isEqualToString:@"\n"])
{
[searchBar resignFirstResponder];
return NO;
}
return YES;
}
Run Code Online (Sandbox Code Playgroud)
3.
- (void)searchBarCancelButtonClicked:(UISearchBar *) searchBar
{
[searchBar resignFirstResponder];
}
Run Code Online (Sandbox Code Playgroud)
nsg*_*ver 29
首先,你应该UISearchBarDelegate 在你的班级实施并检查你是否已经连接到你的UISearchBar?
如果您UISearchBar通过IB 添加,那么您应该选择UISearchBar的委托属性到文件的所有者.你应该确保你所连接 IBOutlet的UISearchBar代码正确.
如果您要UISearchBar通过代码添加,那么您应该在代码中自己设置代理searchBar.delegate=self;
下一步是确保调用委托方法,这很明显,如果你正确连接委托,最好检查东西是在代码中放置断点指针或打印NSLog.
如果要在用户单击搜索时隐藏,最后使用此方法隐藏键盘
- (void) searchBarSearchButtonClicked:(UISearchBar *)searchBar {
[searchBar resignFirstResponder];
}
Run Code Online (Sandbox Code Playgroud)
或者您可以在编辑完成时尝试
- (void)searchBarTextDidEndEditing:(UISearchBar *)searchBar {
[searchBar resignFirstResponder];
}
Run Code Online (Sandbox Code Playgroud)
试试这个:
在搜索栏上设置代理并检查IBOutlet是否已连接
- (void)searchBarSearchButtonClicked:(UISearchBar *)searchBar {
[searchBar resignFirstResponder];
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
29545 次 |
| 最近记录: |