在UISearchBar失去焦点时隐藏键盘
我不确定为什么这么难。 我的页面顶部有一个UISearchBar。 当用户键入该UISearchBar时,它将自动过滤搜索栏下方的UITableView中的结果。 由于我在按键时搜索,所以不需要搜索按钮。
该应用程序的流程是用户在搜索栏中键入搜索(键盘正在显示),然后将结果显示在表格视图中 - 此时键盘需要消失。
我很难让键盘消失。
我知道我需要这样做:
[searchBar resignFirstResponder];
让键盘消失,但我找不到需要执行此操作的代理。 我想在用户触摸表视图时立即执行此操作。
有任何想法吗?
尝试这个:
- (void)viewWillDisappear:(BOOL)animated {
[super viewWillDisappear:animated];
[searchBar resignFirstResponder];
}
它为我工作
我认为做到这一点最简单(也是最好)的方法是对全局视图进行子类化,并使用hitTest:withEvent方法来侦听任何触摸。 在键盘上触摸没有注册,所以hitTest:withEvent只有当你触摸/滚动/刷卡/捏...在其他地方,然后调用[self endEditing:YES]时才会调用。
这比使用touchesBegan更好,因为如果点击视图顶部的按钮,touchesBegan不会被调用。 它也比使用昏暗的屏幕更好,因为在一个复杂而动态的用户界面中,你无法将昏暗的屏幕放在每个地方。 此外,它比调用[searchBar resignFirstResponder]更好,因为你可能在屏幕上有很多文本字段,所以这对所有的人都适用。
你可能想把它当做Cydia(越狱打包UI)来做 - 它有一个搜索按钮,当你按下搜索按钮时,它会关闭键盘。 输入预览时,结果仍然会被过滤。
链接地址: http://www.djcxy.com/p/44267.html