所以我有一個基本上是使用UITableViewController和UISearchController顯示的電影搜索應用程序。當選擇了uitableview單元並使用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..
}
我試圖避免這種情況。這樣做效率不高嗎?它的工作,雖然。謝謝! – QuantumHoneybees
爲什麼它效率低下?授權是最好的解決方案,但是如果你不想傳遞引用,你也可以使用通知。 – Armin
當我設置一個'tableview'的「searchBar」變量爲'SearchController.SearchBar'時,我通過引用分配權利?如果是這樣,那麼這將是最有效和最無干擾的方式。 – QuantumHoneybees