所以我有一个应用程序,它基本上是一个使用UITableViewController和UISearchController显示的电影搜索应用程序。
我有一个单元格,在点击时会加载更多结果。但是当我点击它时,我也想让键盘消失。所以在tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath)
方法中,我假设我必须调用resignFirstResponder()
。问题是它不起作用。我已经尝试了一切,但没有什么能让键盘消失。我认为这是因为键盘是UISearchBar的一部分,我应该调用searchBar.resignFirstResponder()
。问题是我无法从UITableViewController
类访问searchBar。
这就是我所拥有的,这一切都不起作用:
override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
//Remove Keyboard
self.resignFirstResponder()
self.view.resignFirstResponder()
self.view.endEditing(true)
self.tableView.endEditing(true)
self.navigationController?.view.endEditing(true)
self.navigationController?.resignFirstResponder()
//Do a bunch of other stuff..
}
答案 0 :(得分:1)
如果你知道searchBar
是第一个响应者,那么:
searchBar
的引用传递给UITableViewController
UISeachController
中收听该通知。答案 1 :(得分:0)
[[UIApplication sharedApplication]sendAction:@selector(resignFirstResponder)
to:nil
from:nil
forEvent:nil];