激活UISearchBar

时间:2016-09-08 09:40:19

标签: ios swift uisearchbar

我正在尝试进行视图加载,就像用户已经按下UISearchBar一样。我希望SearchController在顶部加载UISearchBar以及取消按钮。

我试过这个:

func activateSearch(){
        self.searchBarShouldBeginEditing(self.searchController.searchBar)
        self.willPresentSearchController(self.searchController)
        self.updateSearchResultsForSearchController(self.searchController)
}

2 个答案:

答案 0 :(得分:2)

启用seacrbar焦点只需将becomeFirstResponder添加到搜索栏

 func activateSearch(){
 self.searchController.searchBar.becomeFirstResponder()
}

或如果上述内容无效,请添加self.searchController.active = true并尝试此操作

   func activateSearch(){
      self.searchController.active = true 
     self.searchController.searchBar.becomeFirstResponder()
}

或改进方式

  func activateSearch(){
self.searchController.active = true 
self.searchController.searchBar.hidden = false

self.searchController.searchBar.becomeFirstResponder()
 }

不需要这个

func activateSearch(){
    self.searchBarShouldBeginEditing(self.searchController.searchBar)
    self.willPresentSearchController(self.searchController)
    self.updateSearchResultsForSearchController(self.searchController)
}

答案 1 :(得分:1)

这可以通过在searchController

中将active设置为viewDidAppear来完成
override func viewDidAppear(animated: Bool) {
        searchController.active = true
    }

并添加此

func didPresentSearchController(searchController: UISearchController) {
    searchResultController.searchBar.becomeFirstResponder()
}