Ho creato un UISearchController in un controller di visualizzazione tabella. Accedo a questo controller di visualizzazione tabella utilizzando una sequenza di passaggi da un altro controller di visualizzazione. Voglio che la tastiera si mostri con il cursore nella barra di ricerca non appena viene premuto il controller della vista tabella.Mostra tastiera automaticamente quando viene caricato UISearchController
ho fatto controllore ricerca attiva nel metodo viewDidLoad utilizzando
self.mySearchController.active = true
Si fa il controllore ricerca attiva ma ciò non porta la tastiera né il cursore posizionato nella barra di ricerca. Ho anche provato
self.mySearchController.searchBar.becomeFirstResponder()
Questa linea non sembra avere alcun effetto.
Come si attiva la tastiera automaticamente/a livello di programmazione? Qui di seguito è una versione più dettagliata del mio codice
class PickAddressViewController: UITableViewController, UISearchResultsUpdating {
var searchText = ""
var mySearchController = UISearchController()
override func viewDidLoad() {
super.viewDidLoad()
self.mySearchController = ({
let controller = UISearchController(searchResultsController: nil)
controller.searchResultsUpdater = self
controller.dimsBackgroundDuringPresentation = false
controller.searchBar.sizeToFit()
controller.searchBar.text = self.searchText
self.tableView.tableHeaderView = controller.searchBar
return controller
})()
self.mySearchController.active = true
self.mySearchController.searchBar.becomeFirstResponder()
}
Grande! Ho provato la soluzione in quel collegamento e funziona! Per qualsiasi neofita come me, oltre al codice che ho scritto nella mia domanda sopra, devi fare quanto segue: Rendi il controller di visualizzazione un UISearchControllerDelegate. Durante la definizione del controller di ricerca, scrivi una riga che dice controller.delegate = self. Inserisci la riga becomeFirstResponder nella funzione delegato denominata "didPresentSearchController" – RookiePro