无法自动(或强制)关闭iPad上的键盘(iOS 7)

时间:2013-10-25 04:44:32

标签: ios iphone objective-c ios7

我的应用程序有一个联系人列表(它从本机联系人加载到我的iPad中)和一个好友聊天列表。当我将好友添加到我的联系人,然后点击搜索栏搜索联系人 - >键盘显示。问题是当我点击键盘的搜索按钮(或在搜索栏上取消)然后即使调用以下功能键盘也没有消失:

-(void)searchBarSearchButtonClicked:(UISearchBar *)sBar
{
 [searchBar resignFirstResponder];
}

甚至我打电话给[self.view endEditing:YES];它也行不通。当我触摸我的应用程序中的另一个按钮以显示 popover 时,键盘也不会被忽略 - >这意味着以下代码不起作用[[[UIApplication sharedApplication] keyWindow] endEditing:YES];如果我没有尝试将我的好友添加到我的联系人,当我点击按钮显示 popover 时键盘会自动关闭或当我点击搜索按钮时键盘将会解除顺利。

如何强制键盘解除?

3 个答案:

答案 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
}