UISearchBar랑 UITableView 연동하기
오브젝트 라이브러리에 있었다…
찾아보니까 search bar를 table view안에 넣어야 한다 뭐 이런 말이 있던데…
우선 나는 search bar를 programmatically 하게 생성한 상태이기 때문에 ㅠ 일단 고 ㅠ
Docs를 먼저 읽어보자.
A search bar doesn’t actually perform any searches. You use a delegate, an object conforming to the
UISearchBarDelegate
protocol, to implement the actions when the user enters text or clicks buttons.
ㅇㅋ… self.searchBar.delegate = self
해줘야겠군 delegate 함수들을 살펴보자!
검색하기 버튼 click - searchBarSearchButtonClicked
searchBarSearchButtonClicked
함수다.
extension SearchViewController: UISearchBarDelegate {
func searchBarSearchButtonClicked(_ searchBar: UISearchBar) {
print("search")
}
}
요렇게만 하면
키보드의 검색 버튼 눌렀을 때만 search log가 찍혀서,
내가 추가해준 검색바의 아이콘도 검색 버튼 역할을 시켜주기 위해
// 검색 버튼
let search = UIBarButtonItem(systemItem: .search, primaryAction: UIAction(handler: { _ in
// search action
self.searchBarSearchButtonClicked(searchBar)
}))
요 부분을 추가해 줬다. (delegate 함수를 이렇게 막 갖다가 호출해도 되는지는 모르겠음)
동작은 잘 되긴 한다 .,, ㅋ ㅋ