Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 加载控制器时激活UISearchBar_Swift_Keyboard_Uikit_Ios9_Uisearchbar - Fatal编程技术网

Swift 加载控制器时激活UISearchBar

Swift 加载控制器时激活UISearchBar,swift,keyboard,uikit,ios9,uisearchbar,Swift,Keyboard,Uikit,Ios9,Uisearchbar,我拥有以下搜索控制器: class SearchController: UITableViewController, UISearchResultsUpdating 该实现运行良好,但每次加载控制器时,我都必须点击搜索栏开始搜索。我想在SearchController加载后激活搜索栏。我试过: override func viewDidLoad() { super.viewDidLoad() ... ... self.resultSearchControll

我拥有以下搜索控制器:

class SearchController: UITableViewController, UISearchResultsUpdating
该实现运行良好,但每次加载控制器时,我都必须点击搜索栏开始搜索。我想在SearchController加载后激活搜索栏。我试过:

override func viewDidLoad() {
    super.viewDidLoad()

    ...
    ...

    self.resultSearchController.searchBar.becomeFirstResponder()
}
override func viewDidAppear(animated: Bool) {
    self.resultSearchController.searchBar.becomeFirstResponder()
}
我还尝试了:

override func viewDidLoad() {
    super.viewDidLoad()

    ...
    ...

    self.resultSearchController.searchBar.becomeFirstResponder()
}
override func viewDidAppear(animated: Bool) {
    self.resultSearchController.searchBar.becomeFirstResponder()
}
但搜索栏仍处于停用状态,键盘不会显示。我错过了什么?谢谢

这是有效的(不确定为什么它不适合你):


如果我添加以下“resultSearchController.active=true;resultSearchController.searchBar.becomeFirstResponder()”则它几乎可以工作:搜索栏被激活,但光标提示仍然不可见(这意味着,除非我点击搜索栏字段,否则它将不接受按键),苹果自己的TableSearchwithUISearchController示例也做了同样的事情。我修改了代码以禁用状态恢复,并始终强制searchController.searchBar.becomeFirstResponder()。它显示与我的应用程序相同的行为:-/您是否在导航栏的标题视图中显示了
UISearchBar
?我尝试了1)tableView.tableHeaderView=searchController.searchBar和2)navigationItem.titleView=searchController.searchBar。同样,创建一个新的Xcode单视图项目。在故事板中,将视图控制器嵌入到导航控制器中(以获取导航栏)。然后将ViewController.swift的内容替换为我发布的内容。