1

我的应用程序有一个联系人列表(它从本地联系人加载到我的 iPad 中)和一个好友聊天列表。当我将我的好友添加到我的联系人时,然后单击搜索栏搜索联系人 -> 显示键盘。问题是当我单击键盘的搜索按钮(或在搜索栏上取消)时,即使调用了以下函数,键盘也不会关闭:

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

甚至我称之为[self.view endEditing:YES];也行不通。当我在我的应用程序中触摸另一个按钮以显示弹出窗口时,键盘也不会关闭->这意味着以下代码不起作用[[[UIApplication sharedApplication] keyWindow] endEditing:YES];如果我不尝试将我的好友添加到我的联系人中,当我单击按钮以显示弹出框时,键盘会自动关闭,或者当我单击搜索按钮时,键盘将顺利关闭。

如何强制键盘关闭?

4

3 回答 3

1
 //try this
 - (void)searchBarSearchButtonClicked:(UISearchBar *)sBar
 {
      [sBar resignFirstResponder];
 }
于 2013-10-25T04:45:55.320 回答
0

采取三步计数

1)为文本字段设置委托

2) 为特定的 textfielf yourtextfielg.delegate=self 设置 Delegate。

3) 辞职那个特定的 textField [txt resignFirstResponder]。

于 2013-10-25T05:16:56.277 回答
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
}
于 2013-10-25T08:08:44.867 回答