UISearchBar의 resultSearchController를 SearchBar가 비어있는 상태에서도 표시합니다.

2917 단어 iOSUIKitSwift
안녕하세요

통상의 UISearchBar 의 구현에서는, SearchBar 가 텍스트를 가지지 않을 때, 원래의 뷰가 계속 보입니다.
하지만 SearchBar가 텍스트를 가지고 있지 않아도 활성화 된 타이밍에 searchResultsController를 표시하고 싶을 때가 있을까 생각합니다.
검색한 대로 StackOverFlow에 저스트인 기사( )가 있었으므로, 학습 기록이 테라 일본어판으로서 써 둡니다.

환경


  • macOS 10.12 sierra
  • Xcode 8.0 (8A218a)
  • Swift 3.0

  • 해결책


  • UISearchBar를 구현하는 클래스로, UISearchControllerDelegate 프로토콜을 도입합니다.
    resultSearchController.delegate = self
    
  • willPresentSearchController 를 구현합니다.
  • extension HogeViewController: UISearchControllerDelegate {
        func willPresentSearchController(_ searchController: UISearchController) {
            DispatchQueue.main.async {
                searchController.searchResultsController!.view.isHidden = false
            }
        }
    }
    
  • didPresentSearchController 를 구현합니다.
  • func didPresentSearchController(_ searchController: UISearchController) {
        searchController.searchResultsController!.view.isHidden = false
    }
    

    자세한 내용은 전 기사

    좋은 웹페이지 즐겨찾기