Swift 为什么我的搜索栏在单击“取消”按钮后没有重置为初始状态?

Swift 为什么我的搜索栏在单击“取消”按钮后没有重置为初始状态?,swift,Swift,我有一个带有取消按钮的搜索栏。当我单击“取消”按钮时,它不会将搜索栏重置为初始状态 是完整的源代码 var searchBar:UISearchBar=UISearchBar() func searchBar(searchBar:UISearchBar,textDidChange searchText:String){ searchBarText=searchBar.text?.lowercased() searchBarScope=searchBar.selectedScopeButtonI

我有一个带有取消按钮的搜索栏。当我单击“取消”按钮时,它不会将搜索栏重置为初始状态

是完整的源代码


var searchBar:UISearchBar=UISearchBar()
func searchBar(searchBar:UISearchBar,textDidChange searchText:String){
searchBarText=searchBar.text?.lowercased()
searchBarScope=searchBar.selectedScopeButtonIndex
showList()
}
func SearchBartextdidediting(searchBar:UISearchBar){
searchBar.setShowsCancelButton(真,动画:真)
}
func searchBarCancelButtonClicked(searchBar:UISearchBar){
searchBar.text=nil
searchBar.setShowsCancelButton(假,动画:真)
searchBar.endEditing(真)
}
公共函数setupSearchBarStyle(){
UISearchBar.appearance().searchBarStyle=.minimal
UISearchBar.appearance().backgroundColor=UIColor.white
UISearchBar.appearance().barTintColor=UIColor.white
}
func searchBarTextDidBeginEditing(searchBar:UISearchBar){
self.searchBar.showscopebar=true
if(navigationItem.title!=nil){
self.searchBar.scopebuttontiles=[字符串(格式:“gesamte%@”,ci(“项目”)),字符串(格式:“in%@”,navigationItem.title!)]
}
}
重写func viewdilayoutsubviews(){
self.searchBar.sizeToFit()
}
公共覆盖函数viewDidLoad(){
self.navigationController?.setNavigationBarHidden(假,动画:假)
navigationItem.title=navigationItem.title??ci(“计划”)
guard let projectId=GlobalState.selectedProjectId,let byProject:Results=self.by(projectId:projectId)else{
返回
}
//搜索栏
tableView.rowHeight=100.0
tableView.tableHeaderView=搜索栏
self.searchBar.showsCancelButton=true
self.searchBar.sizeToFit()
self.definesPresentationContext=true
self.searchBar.delegate=self
tableView.AllowsMultipleSelectionDuringEdit=true


在用户单击“取消”按钮后,如何将搜索栏更改为其初始状态?现在,在用户单击“取消”按钮后,它将搜索文本更改为nil

搜索栏中单击“取消”按钮
功能:

searchBar.text = ""
searchBar.showsCancelButton = false
同样在
textDidChange
中:

yourSearchBar.showsCancelButton = true

我认为这是因为这个代码:

func searchBarTextDidEndEditing(searchBar: UISearchBar) {
    searchBar.setShowsCancelButton(true, animated: true)
}
它必须是:

func searchBarTextDidEndEditing(searchBar: UISearchBar) {
    searchBar.setShowsCancelButton(false, animated: true)
}

搜索栏不会失去焦点,并与作用域一起保持在选定状态buttons@Nimrani1337您的意思是当您按“取消”时,所选范围按钮仍处于选中状态吗?
func searchBarTextDidEndEditing(searchBar: UISearchBar) {
    searchBar.setShowsCancelButton(false, animated: true)
}