Xcode 搜索栏对更改文本或取消点击没有反应
Xcode search bar not reacting to changing text or cancel being clicked
我的搜索栏委托代码是:
extension ViewController: UISearchBarDelegate{
func searchBar(_ searchBar: UISearchBar, textDidChange searchText: String) {
// change the array that is being printed
searching = true
print("here")
tableView.reloadData()
}
func searchBarCancelButtonClicked(_ searchBar: UISearchBar) {
searching = false
searchBar.text = ""
print("cancel")
tableView.reloadData()
}
}
我的搜索栏连接为 @IBOutlet weak var searchBar: UISearchBar!
撇开我是否正确过滤内容不谈,现在无论是在搜索栏中键入内容还是单击取消都不会执行任何操作(如上所示,至少当这些方法被称为“此处”和“取消”时应该打印出来到控制台),取消也不会清除搜索栏文本。有谁知道为什么这个happens/what我做错了?
您是否检查过是否将 searchBar 委托设置为 ViewController?您已经正确地实现了协议,但请确保您的 viewDidLoad 函数中包含以下代码:
self.searchBar.delegate = self
还值得检查情节提要搜索栏元素是否真的连接到 ViewController 上声明的 @IBOutlet。您可以在连接检查器中找到它。你的必须是这样的:
Look at the second connection in this image
我的搜索栏委托代码是:
extension ViewController: UISearchBarDelegate{
func searchBar(_ searchBar: UISearchBar, textDidChange searchText: String) {
// change the array that is being printed
searching = true
print("here")
tableView.reloadData()
}
func searchBarCancelButtonClicked(_ searchBar: UISearchBar) {
searching = false
searchBar.text = ""
print("cancel")
tableView.reloadData()
}
}
我的搜索栏连接为 @IBOutlet weak var searchBar: UISearchBar!
撇开我是否正确过滤内容不谈,现在无论是在搜索栏中键入内容还是单击取消都不会执行任何操作(如上所示,至少当这些方法被称为“此处”和“取消”时应该打印出来到控制台),取消也不会清除搜索栏文本。有谁知道为什么这个happens/what我做错了?
您是否检查过是否将 searchBar 委托设置为 ViewController?您已经正确地实现了协议,但请确保您的 viewDidLoad 函数中包含以下代码:
self.searchBar.delegate = self
还值得检查情节提要搜索栏元素是否真的连接到 ViewController 上声明的 @IBOutlet。您可以在连接检查器中找到它。你的必须是这样的:
Look at the second connection in this image