【问题标题】:Dismissing the keyboard after tableviewcontroller selection选择 tableviewcontroller 后关闭键盘
【发布时间】:2014-08-22 20:01:27
【问题描述】:

我有这种情况:

用户在 UISearchBar 中搜索客户端 - 结果显示在弹出框控制器中,搜索是像 google 一样自动填充的搜索 - 输入 D 并获得所有带有 D 的结果,添加“r” Dr 和你的结果只过滤给那些有 Dr 的人。 popovercontroller 的viewcontroller 是一个tableviewcontroller。用户从表中选择一个结果,popovercontroller 关闭并打开第二个,还有一个 tableviewcontroller,其中包含与他们选择的客户端相关联的项目。此时键盘仍然显示,这很好。但是,当他们在此表视图中选择一行时,键盘应该关闭。

我尝试将 [self setEditing:NO animated:YES] 放置在两个 tableviewcontrollers 的 didSelectRowAtIndexPath 方法以及我的根视图控制器中的 popoverControllerDidDismissPopover 方法中,但键盘不会关闭。

也试过这个:

  • (BOOL) 禁用自动键盘关闭 { 返回否; }

没有运气。

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

【问题讨论】:

  • UISearchBar 我猜想把键盘放在这里...你可以试试 [yoursearchbar resignFirstResponsder];。我前一阵子做了这个,它奏效了。我没有将此作为答案发布,因为我不确定我是否使用过 popOver 和表格视图控制器。
  • 这是[yoursearchbar resignFirstResponder],我相信这是正确的。要关闭键盘,请在调用键盘的项目上resignFirstResponder

标签: ios keyboard uipopovercontroller


【解决方案1】:

为 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
}

【讨论】:

    猜你喜欢
    • 2020-04-27
    • 2020-02-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-20
    • 1970-01-01
    • 2015-05-12
    • 2015-07-17
    相关资源
    最近更新 更多