触摸文本区域时 UISearchDisplayController 不显示键盘

Posted

技术标签:

【中文标题】触摸文本区域时 UISearchDisplayController 不显示键盘【英文标题】:UISearchDisplayController not displaying keyboard when text area touched 【发布时间】:2012-02-06 07:28:04 【问题描述】:

我在嵌套在UITabBar 下的控制器中有一个UITableView

到目前为止,交互都是在 Interface Builder 中完成的,在视图切换方面没有以编程方式完成。

我添加了UISearchDisplayController 作为 UITableView 的标题。它显示正常,当我点击文本输入区域时,会出现取消按钮,黑色覆盖层飞入。

但是,键盘从不出现,当点击取消按钮时,覆盖层飞出,取消按钮消失,但文本输入区域保持焦点,插入符号在那里闪烁,所以我无法再次点击那里重新显示搜索结果。

所以基本上我有两个问题:

    从 UISearchDisplayController 开始编辑 UISearchBar 上的文本时,键盘未出现

    点击取消按钮时,UISearchBar 不会失去焦点。

我做错了什么?

【问题讨论】:

你设置了委托属性吗? 我已经拖放了它。代理在 IB 中被分配为包含视图控制器。没有代表正确会导致这些症状吗? 【参考方案1】:

包含我的标签栏的.xib 文件包含一个 UIWindow。

这导致了各种各样的疯狂,最后我放弃了尝试使用界面生成器来做这件事,并求助于在代码中构造 UITabBar,从而没有创建第二个 UIWindow。

这解决了问题并且 UISearchDisplayController 的行为正确。

【讨论】:

【参考方案2】:

UISearchBarDelegate查看这个方法:

- (void)searchBarCancelButtonClicked:(UISearchBar *) searchBar;

尝试查看它是否被调用并在此处执行与键盘相关的删除。如果没有,请尝试创建另一个UISearchDisplayController。 (我实际上从不使用默认的 viewController 的那个)。另外,请确保代理设置正确。

【讨论】:

我不是想隐藏键盘,只是当我点击文本区域时它没有显示...

以上是关于触摸文本区域时 UISearchDisplayController 不显示键盘的主要内容,如果未能解决你的问题,请参考以下文章

在将数据输出回文本区域时,如何正确清理从文本区域接收的数据?

JavaFX - 未填充文本区域时发出警报

单击文本区域时,iOS 上的 reactstrap 模态关闭(仅在编辑时)

Phonegap textarea滚动

更新文本区域

将文本区域动态添加到容器 extjs