我通过单击按钮创建表格视图和搜索栏。但我需要搜索栏出现在自动聚焦(用户立即输入文本,无需在搜索栏中单击)。我怎样才能做到这一点?
试试这个
@IBOutlet weak var searchBar: UISearchBar!
override func viewDidLoad() {
super.viewDidLoad()
searchBar.becomeFirstResponder()
}
这应该可以。
override func viewWillAppear(animated: Bool) {
super.viewWillAppear(animated)
searchController.active = true
}
...
extension GDSearchTableViewController: UISearchControllerDelegate {
func didPresentSearchController(searchController: UISearchController) {
searchController.searchBar.becomeFirstResponder()
}
}
斯威夫特 5.2
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
searchController.isActive = true
}
override func viewDidLoad() {
super.viewDidLoad()
searchController.delegate = self
}
extension ViewController: UISearchControllerDelegate {
func didPresentSearchController(_ searchController: UISearchController) {
searchController.searchBar.becomeFirstResponder()
}
}
我必须确保对becomeFirstResponder()的调用发生在主线程上:
DispatchQueue.main.async {
self.searchController.searchBar.becomeFirstResponder()
}