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)

完美运行!