当我输入UITextField
时,我正在搜索服务中的文字。我正在使用Alamofire
库来进行服务调用。这就是我调用我的Web服务调用函数的方式。
func search(){
self.strSkipCount="0"
com.showProgress()
self.searchDirectory() { (status) in
print("-----SEARCHING-----")
self.com.removeProgress()
if(status){
self.facesCarousel.reloadData()
self.setNumberofFaces(count: self.arrayDirectory.count)
} else {
self.com.showProgress()
self.getStaffData() { (status) in
self.com.removeProgress()
if(status){
self.facesCarousel.reloadData()
self.setNumberofFaces(count: self.arrayDirectory.count)
self.resetMembercountLabel()
} else {
self.setNumberofFaces(count: self.arrayDirectory.count)
}
}
}
}
}
在我的ViewDidLoad()
中,我已经以这种方式将目标设置为我的文本字段。
txtSearch.addTarget(self, action: #selector(self.searchTextFieldEditingChanged), for: .editingChanged)
然后
func searchTextFieldEditingChanged() {
if(txtSearch.text != ""){
self.searchText=txtSearch.text
//self.cancelPreviousRequest()
NSObject.cancelPreviousPerformRequests(withTarget: self, selector: #selector(search), object: nil)
self.search()
} else {
self.searchText=""
NSObject.cancelPreviousPerformRequests(withTarget: self, selector: #selector(searchDirectory(callback:)), object: nil)
isSearching=false
prevIndex=0
self.arrayDirectory=self.arrayPreviouslyLoadedArray
facesCarousel.reloadData()
self.resetMembercountLabel()
self.com.removeProgress()
}
}
我的问题是,让我说我想要搜索名称" Alex",即使在发现了我以前的服务电话似乎没有停止。它重新加载错误的结果。但有时它有效。当删除文本字段中的所有文本时,如果文本是""在文本字段中。我想用最初加载的数据集重新加载。但是设置为""后,服务电话不会立即停止。请帮帮我。