触摸文本区域时 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 不显示键盘的主要内容,如果未能解决你的问题,请参考以下文章
在将数据输出回文本区域时,如何正确清理从文本区域接收的数据?