iOS Swift - searchBarCancelButtonClicked 打印出现在日志中但未返回函数
iOS Swift - searchBarCancelButtonClicked print appear in log but a func not returned
这是我的代码:
extension MyViewController: UISearchBarDelegate {
// MARK: - UISearchBar Delegate
func searchBar(_ searchBar: UISearchBar, selectedScopeButtonIndexDidChange selectedScope: Int) {
filterContentForSearchText(searchBar.text!, scope: searchBar.scopeButtonTitles![selectedScope])
}
// MARK: - Cancel
func searchBarCancelButtonClicked(_ searchBar: UISearchBar) {
myFunc()
print("Cancel")
searchBar.resignFirstResponder()
}
}
单击取消时一切按预期完成,Xcode 日志显示打印 "Cancel",但未执行功能 "myFunc"。
有什么办法解决这个问题吗?
谢谢!
编辑:(更多上下文)
我有一个按钮,当点击搜索栏时我会隐藏它:
func filterContentForSearchText(_ searchText: String, scope: String = "xyz") {
self.exampleButton.alpha = 0.0
....
...
函数"myFunc"如下:
func myFunc(){
self.exampleButton.alpha = 1.0
}
我也试过这样纠正我想要的:
// MARK: - Cancel
func searchBarCancelButtonClicked(_ searchBar: UISearchBar) {
self.exampleButton.alpha = 1.0
print("Cancel")
searchBar.resignFirstResponder()
}
但也没有用。
我的目标是让 exampleButton 在搜索结束时重新出现。
好的,我找到问题所在了。
而不是将按钮隐藏在:
func filterContentForSearchText(_ searchText: String, scope: String = "xyz")
为了在点击搜索栏时隐藏它,我应该在以下地方使用它:
func searchBarTextDidBeginEditing(_ searchBar: UISearchBar)
现在,当我让它重新出现在搜索结果中时,出现在:
func searchBarCancelButtonClicked(_ searchBar: UISearchBar)
完美运行!
这是我的代码:
extension MyViewController: UISearchBarDelegate {
// MARK: - UISearchBar Delegate
func searchBar(_ searchBar: UISearchBar, selectedScopeButtonIndexDidChange selectedScope: Int) {
filterContentForSearchText(searchBar.text!, scope: searchBar.scopeButtonTitles![selectedScope])
}
// MARK: - Cancel
func searchBarCancelButtonClicked(_ searchBar: UISearchBar) {
myFunc()
print("Cancel")
searchBar.resignFirstResponder()
}
}
单击取消时一切按预期完成,Xcode 日志显示打印 "Cancel",但未执行功能 "myFunc"。
有什么办法解决这个问题吗? 谢谢!
编辑:(更多上下文)
我有一个按钮,当点击搜索栏时我会隐藏它:
func filterContentForSearchText(_ searchText: String, scope: String = "xyz") {
self.exampleButton.alpha = 0.0
....
...
函数"myFunc"如下:
func myFunc(){
self.exampleButton.alpha = 1.0
}
我也试过这样纠正我想要的:
// MARK: - Cancel
func searchBarCancelButtonClicked(_ searchBar: UISearchBar) {
self.exampleButton.alpha = 1.0
print("Cancel")
searchBar.resignFirstResponder()
}
但也没有用。
我的目标是让 exampleButton 在搜索结束时重新出现。
好的,我找到问题所在了。
而不是将按钮隐藏在:
func filterContentForSearchText(_ searchText: String, scope: String = "xyz")
为了在点击搜索栏时隐藏它,我应该在以下地方使用它:
func searchBarTextDidBeginEditing(_ searchBar: UISearchBar)
现在,当我让它重新出现在搜索结果中时,出现在:
func searchBarCancelButtonClicked(_ searchBar: UISearchBar)
完美运行!