Archive/꼼꼼한 재은씨 시리즈

[iOS14] SearchBar - 검색바 사용

lgvv 2021. 4. 13. 01:17

자 이번에 HCI 프로젝트를 진행하면서 검색바를 만들기로 했는데, 이걸 뷰에 이미지와 텍스트필드 버튼을 컨테이너 식으로 얹어서 만들려고 했다니... 아무튼... 서치바라는 게 있어서 사용해보고 간단하게 정리해보도록 하자.

 

서치바

 

1. 서치바를 스토리 보드에서 추가한다.

 

2번과정

 

2. (주의) 서치바의 delegate를 도커바에 연결한다. 

 

 

검색 버튼을 사용자가 터치했을 때 실행되는 델리게이트 메소드!! 

3. 위의 코드는 사용자가 키보드에서 검색 버튼 클릭시 실행되는 메소드인데, 자동완성 되지 않는 경우가 종종 있음.

 

 

 

 

키보드로 연결사용

 

키보드로 검색 활성화 하는 방법 :

viewDidLoad에 이 코드를 추가한다. 서치바는 아울렛 변수를 연결한 것

searchBar.enablesReturnKeyAutomatically = false  // 검색 키가 항상 활성화되어 있도록 처리

 

 

자 이번에는 10개의 테이블 정보가 있었는데 내가 검색를 해서 1개의 테이블 뷰만 검색되었다고 치자.

그런데 유저가 검색을 다 지우고 모든 정보를 보고 싶은거야.

이런 경우는 어떻게 처리하는게 좋을까?

우선 쉽게 생각해보자, 사용자가 아무것도 입력하지 않고, 검색을 하면 모든 뷰가 나타나도록 설계해보자

 

 

if let t = text, t.isEmpty == false {

      fetchRequest.predicate = NSPredicate(format: "contents CONTAINS[c] %@", t)

}

-> 이코드에서 중요한 점은 fetch(keyword:)로 nil을 전달하지만 아무튼 내가 짠 로직에선 크게 문제가 없다.

 

 

근데 이런거를 떠나서 내가 지금 중요한 것은.

UI 설계에는 큰 어려움을 겪지 않지만 데이터 설계하는데 있어서 너무 큰 어려움이 있다.

UserDefault도 CoreData도 정확하게 이해하지 못한 느낌이다...

 

음... 뭐랄까 하나하나 전부 재공부해야하는 느낌?

firebase나 아마존 aws? 사용할 수도 있으니까 아무튼 이 부분에 대해서는 따로 공부를 꼭 해야할 것 같다.