我的应用程序有一个联系人列表(它从本机联系人加载到我的iPad中)和一个好友聊天列表。当我将好友添加到我的联系人,然后点击搜索栏搜索联系人 - >键盘显示。问题是当我点击键盘的搜索按钮(或在搜索栏上取消)然后即使调用以下功能键盘也没有消失:
-(void)searchBarSearchButtonClicked:(UISearchBar *)sBar
{
[searchBar resignFirstResponder];
}
甚至我打电话给[self.view endEditing:YES];
它也行不通。当我触摸我的应用程序中的另一个按钮以显示 popover 时,键盘也不会被忽略 - >这意味着以下代码不起作用[[[UIApplication sharedApplication] keyWindow] endEditing:YES];
。 如果我没有尝试将我的好友添加到我的联系人,当我点击按钮显示 popover 时键盘会自动关闭或当我点击搜索按钮时键盘将会解除顺利。
如何强制键盘解除?
答案 0 :(得分:1)
//try this
- (void)searchBarSearchButtonClicked:(UISearchBar *)sBar
{
[sBar resignFirstResponder];
}
答案 1 :(得分:0)
计算三步
1)为textfield设置委托
2)为特定的textfielf设置委托yourtextfielg.delegate = self。
3)辞去特定的textField [txt resignFirstResponder]。
答案 2 :(得分:0)
以下是解决方案:
- (void)viewDidLoad
{
[super viewDidLoad];
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(dismissKeyboard)];
[self.view addGestureRecognizer:tap];
}
您需要使用UI字段重新设置第一个响应者状态以关闭键盘。
- (void)dismissKeyboard
{
[searchBar resignFirstResponder]; //It might not work
或强>
[field resignFirstResponder]; //it will surely work
}