我在 TableView Controller 中创建了一个 UISearchController。我使用来自另一个 View Controller 的推送 segue 转到这个 TableView Controller 。一旦按下 TableView Controller ,我希望键盘在搜索栏中显示光标。
我使用
在 viewDidLoad 方法中激活了搜索 Controllerself.mySearchController.active = true
它确实使搜索 Controller 处于事件状态,但这不会调出键盘,也不会将光标放在搜索栏中。我也试过了
self.mySearchController.searchBar.becomeFirstResponder()
这一行好像没有什么作用。
如何自动/以编程方式调出键盘?下面是我的代码的更详细版本
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()
}
最佳答案
BecomeFirstResponder 是可行的方法,但您不应在 viewDidLoad 中执行此操作。有关详细信息,请参阅以下讨论 - Cannot set searchBar as firstResponder
关于ios - 加载 UISearchController 时自动显示键盘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31105798/