Bag*_*yer 1 uisearchbar ios swift3
这是我在导航栏中使用 UISearchBar 的视图:
我希望它在我的视图加载时自动聚焦。我根据这个问题尝试了几种方法。但没有一个工作。我必须单击搜索栏才能使其集中。
这是我的代码之一:
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
self.searchController.isActive = true
DispatchQueue.main.async { [unowned self] in
self.searchController.searchBar.becomeFirstResponder()
}
}
Run Code Online (Sandbox Code Playgroud)
有人提到 searchController 应该在 becomeFirstResponder 之后处于活动状态。我试过这个:
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
DispatchQueue.main.async { [unowned self] in
self.searchController.searchBar.becomeFirstResponder()
self.searchController.isActive = true
}
}
Run Code Online (Sandbox Code Playgroud)
这次键盘确实出来了。但是我无法在搜索栏中输入任何内容。
任何的想法?谢谢。
我按照建议并重新创建我的项目。然后它起作用了。我的代码:
class SearchViewController: UIViewController, UITableViewDataSource, UITableViewDelegate, UISearchResultsUpdating, UISearchControllerDelegate, UISearchBarDelegate {
......
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
searchController.isActive = true
}
func didPresentSearchController(_ searchController: UISearchController) {
DispatchQueue.main.async { [unowned self] in
self.searchController.searchBar.becomeFirstResponder()
}
}
Run Code Online (Sandbox Code Playgroud)
必须放入becomeFirstRespnder
主队列,否则键盘不会自动显示。
归档时间: |
|
查看次数: |
2203 次 |
最近记录: |