UISearchBarでTableViewの表示を絞る方法
1.storyboardでUISearchBarを配置し、ViewControllerと接続します。
@IBOutlet weak var searchBar: UISearchBar!
2.ViewControllerにUISearchBarDelegateプロコトルを適用させます。
class ViewController: UIViewController, UISearchBarDelegate{
3.searchBarの処理をコードで実装します。
// searchButtonを押した時に実行されるメソッド
func searchBarSearchButtonClicked(_ searchBar: UISearchBar) {
// tableViewに表示するデータリストをsearchBarに入力されたテキストで絞り込む
members = members?.filter("name CONTAINS[cd] %@", searchBar.text!).sorted(byKeyPath: "name", ascending: true)
tableView.reloadData()
}
// searchBarの入力が無くなったら絞り込みを解除する
func searchBar(_ searchBar: UISearchBar, textDidChange searchText: String) {
if searchBar.text?.count == 0 {
loadMembers()
DispatchQueue.main.async {
searchBar.resignFirstResponder()
}
}
}