func searchBar(_ searchBar: UISearchBar, textDidChange searchText: String) {
searchWish()
}
// 키보드 search 버튼 누른 후
func searchBarSearchButtonClicked(_ searchBar: UISearchBar) {
dismissKeyboard()
searchWish()
}
그 외 함수
- SearchBar(:shouldChangeTexttIn:) : 지정된 범위의 값을 주어진 문자열로 대체할지 여부 결정하기 위해 호출되는 함수
- SearchBarShouldBeginEditing(:) : 검색 바에서 편집을 시작했을 때 호출되는 함수
- SearchBarTextDidBeginEditing(:): 텍스트 편집을 시작했을 때 호출되는 함수
- SearchBarShouldEndEditing(:) : 검색 바에서 편집을 중지할지 여부를 결정할 때 호출되는 함수
- SearchBarTextDidEndEditing(_:) : 검색 바의 텍스트 편집을 완료했을 때 호출
나의 코드
extension SearchViewController: UISearchBarDelegate{
// 키보드 내리기
private func dismissKeyboard(){
searchBar.resignFirstResponder()
}
private func searchWish(){
guard let searchTerm = searchBar.text,
searchTerm.isEmpty == false else {
self.filterWish = []
collectionView.reloadData()
return }
self.filterWish = self.wishViewModel.wishs.filter{
$0.name.localizedStandardContains(searchTerm)
}
collectionView.reloadData()
}
// 텍스트 변경 될 때 마다
func searchBar(_ searchBar: UISearchBar, textDidChange searchText: String) {
searchWish()
}
// 키보드 search 버튼 누른 후
func searchBarSearchButtonClicked(_ searchBar: UISearchBar) {
dismissKeyboard()
searchWish()
}
}