I Swift,我使用UISearcheController
和UISearcheResultUpdating
创建搜索视图
并且我用func updateSearchResultsForSearchController
更新结果
if self.searchController?.searchBar.text.lengthOfBytesUsingEncoding(NSUTF32StringEncoding) > 0 {
let searchBarText = self.searchController!.searchBar.text
var arrResult = DFManager.GetResult(searchBarText)
self.results?.addObjectsFromArray(arrResult)
// Reload a table with results.
self.searchResultsController?.tableView.reloadData()
}
但这就是当我一个字符接一个字符地键入时总是更新的结果,这会使这个应用程序变得缓慢。我只想在键入回车键时更新此结果?
试试这个:
func searchBarSearchButtonClicked(searchBar: UISearchBar) {
//do something
searchBar.resignFirstResponder() //hide keyboard
}
别忘了添加searchBar代理:
class SomeViewController: UIViewController, UISearchBarDelegate {
@IBOutlet weak var searchBar: UISearchBar!
override func viewDidLoad() {
searchBar.delegate = self
}
}