【发布时间】:2017-01-31 10:00:48
【问题描述】:
我将我的应用程序从UISearchBar 切换到UISearchController。这是一个表格视图控制器。根据设计,除非它被激活,否则我最初不应将搜索栏保留在 UI 上(通常将搜索栏保留为“tableHeaderView”是一种常见做法)。问题是,我有一个搜索按钮,当点击“搜索栏”时应该激活并成为第一响应者。
当点击取消按钮时,它应该从 UI 中移除。但是,当我点击导航栏上的“搜索栏按钮”时,UISearchController 被激活,提供了暗淡的背景,但没有出现键盘。我需要在搜索栏上再点击一次才能将键盘显示在 UI 上。
这是我的搜索栏按钮操作:
@IBAction func onTapSearch(_ sender: AnyObject) {
self.view.addSubview(searchController.searchBar)
searchController.isActive = true
searchController.becomeFirstResponder()
isSearchActive = true
self.navigationController?.setToolbarHidden(true, animated: false)
}
我在viewDidLoad 方法中配置UISearchController。让我知道您是否想查看该部分代码,但它是通常的代码。而且我确认我没有在任何地方调用resignFirstResponder() 方法。
【问题讨论】:
标签: ios swift swift3 uisearchbar uisearchcontroller