ios - 加载 UISearchController 时自动显示键盘

标签 ios swift uisearchcontroller

我在 TableView Controller 中创建了一个 UISearchController。我使用来自另一个 View Controller 的推送 segue 转到这个 TableView Controller 。一旦按下 TableView Controller ,我希望键盘在搜索栏中显示光标。

我使用

在 vi​​ewDidLoad 方法中激活了搜索 Controller
self.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/

相关文章:

ios - 每次点击取消按钮时,搜索栏都会向下跳一行

ios - 如何更改等待 SKScene 运行的 SKAction 的持续时间?

ios - 如何在 AppDelegate 中测试互联网检查?

ios - 在 Swift 中以编程方式将 UIGestureRecognizer 添加到 subview

python - 通过 REST 将 Swift 数据发送到服务器并执行 Python 代码

ios - 将 SSL https 与 socket.io 和 swift 一起用于 iOS 应用程序

ios - 搜索栏在事件时移动

iphone - 当状态栏隐藏时,UISearchController 在 iPhone X 上出现问题

ios - GCD 优先级的意外结果

objective-c - Xcode 和 Objective C 恶作剧