2016-09-08 2 views
0

Ich versuche, eine Ansicht zu laden, als ob die Benutzer bereits in die UISearchBar gedrückt hat. Ich möchte die SearchController mit der UISearchBar oben zusammen mit der Schaltfläche Abbrechen geladen werden.Aktivieren Sie UISearchBar

Ich habe dies versucht:

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

Versuchen Sie, vorgefüllte Daten zu setzen oder setzen Sie es als ** firstResponder ** kann helfen, Problem –

Antwort

2

der seacrbar Fokus zu ermöglichen, nur becomeFirstResponder bar zu Ihrer Suche hinzufügen

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

oder höher, wenn sie helfen self.searchController.active = true nicht hinzufügen und versuchen, diesen

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

oder verbesserter Weg

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

self.searchController.searchBar.becomeFirstResponder() 
} 

keine Notwendigkeit dieser

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

zu beheben Nur mit: self.searchController.searchBar.becomeFirstResponder() –

+0

@ 0 gearbeitet RutgerHuijsmans - glücklich, mein Bruder zu hören, haben Sie gut einen schönen Tag –

1

kann dies einfach getan werden, indem die searchController-active Einstellung in viewDidAppear

override func viewDidAppear(animated: Bool) { 
     searchController.active = true 
    } 

und fügen Sie diese

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