tableviewcontroller选择后解除键盘

时间:2014-08-22 20:01:27

标签: ios keyboard uipopovercontroller

我有这种情况:

用户在UISearchBar中搜索客户端 - 结果显示在弹出控制器中,搜索是自动填充的,如google - 在D中键入,您可以使用D获得所有结果,添加&r; #39;所以它的博士和你的结果只过滤到那些有博士的人。 popovercontroller的viewcontroller是一个tableviewcontroller。用户从表中选择一个结果,popovercontroller关闭并打开第二个结果,同时还有一个tableviewcontroller,其中包含与所选客户端关联的项目。此时键盘仍然显示,这很好。但是,当他们在此tableview中选择一行时,键盘应该关闭。

我尝试在tableview控件的didSelectRowAtIndexPath方法中以及在我的根视图控制器中的popoverControllerDidDismissPopover方法中放置[self setEditing:NO animated:YES],但键盘没有被忽略。

还试过这个:

  • (BOOL)disablesAutomaticKeyboardDismissal { 返回NO; }
没有运气。

我不明白谁在这里拥有键盘?

1 个答案:

答案 0 :(得分:0)

设置UISearchBar的委托:UISearchBarDelegate并添加适当的方法。

在界面构建器中,单击搜索栏并将代理从连接选项卡拖到当前视图控制器;然后添加到该视图控制器的实现并调用此委托方法。

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

或者创建一个UISearchBar属性并在didSelectRowAtIndexPath中重新签名该属性

@property (weak, nonatomic) IBOutlet UISearchBar *searchBar;

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    [self.searchBar resignFirstResponder];
    .... // Your code
    .... // Your code
}