Swift:在自动对焦时创建搜索栏

问题描述 投票:0回答:4

我通过单击按钮创建表格视图和搜索栏。但我需要搜索栏出现在自动聚焦(用户立即输入文本,无需在搜索栏中单击)。我怎样才能做到这一点?

swift search uisearchcontroller autofocus
4个回答
17
投票

试试这个

@IBOutlet weak var searchBar: UISearchBar!
override func viewDidLoad() {
    super.viewDidLoad()
    searchBar.becomeFirstResponder()
}

3
投票

这应该可以。

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

...

extension GDSearchTableViewController: UISearchControllerDelegate {
   func didPresentSearchController(searchController: UISearchController) {
      searchController.searchBar.becomeFirstResponder()
   }
}

2
投票

斯威夫特 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()
    }
}

0
投票

我必须确保对becomeFirstResponder()的调用发生在主线程上:

DispatchQueue.main.async {
        self.searchController.searchBar.becomeFirstResponder()
    }
© www.soinside.com 2019 - 2024. All rights reserved.