我正在尝试在SWIFT代码中实现搜索。我希望它等到单击搜索按钮才能执行任何操作。到目前为止我有什么。
func updateSearchResultsForSearchController(searchController: UISearchController)
{
self.filteredCats.removeAll(keepCapacity: false)
filteredCats = art.filter{
$0.sarticleTitle.lowercaseString.rangeOfString(searchController.searchBar.text!.lowercaseString) != nil
}
print(searchController.searchBar.text)
self.tableView.reloadData()
}
一旦用户输入内容,它就会打印出所有信息。我希望它等到单击搜索按钮或用户输入完所有内容后。
答案 0 :(得分:4)
你应该像这样设置你的视图控制器。
var resultSearchController = UISearchController()
resultSearchController.searchBar.delegate = self
extension ViewController: UISearchBarDelegate {
func searchBarSearchButtonClicked(_ searchBar: UISearchBar) {
print("search button click")
}
}
答案 1 :(得分:2)
使用UISearchBarDelegate
方法searchBarSearchButtonClicked(_:)
Reference
class MySearchController:UISearchController, UISearchBarDelegate {
override init(searchResultsController: UIViewController?) {
super.init(searchResultsController: searchResultsController)
// Set the searchbar delegate
self.searchBar.delegate = self
}
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
func searchBarSearchButtonClicked(searchBar: UISearchBar) {
// Start the search
}
}
重要的是,请务必告诉UISearchBar
您希望UISearchController
成为其代表,以上是未经测试的示例,您的确切初始化可能会有所不同。
答案 2 :(得分:0)
实施" searchController.searchBar.delegate" &安培; "在searchBarSearchButtonClicked"方法
self.searchController.searchBar.delegate = self;
func searchBarSearchButtonClicked(searchBar: UISearchBar) {
//enter your search code
}