如果我有UISearchController,两者之间有什么区别?

searchController.searchResultsUpdater = self

public func updateSearchResults(for searchController: UISearchController) {
        guard let searchText = searchController.searchBar.text else { return }

        // Use searchText
}


searchController.searchBar.delegate = self

public func searchBar(_ searchBar: UISearchBar, textDidChange searchText: String) {

    // /Use searchText
}

最佳答案

updateSearchResults就像textDidChange的超集。

相似之处:

当在searchBox中输入新文本时,以及从搜索文本字段中清除文本时,两者都被调用

差异性
updateSearchResults在另外2种情况下被触发:

  • 当搜索栏成为第一响应者时(相当于在searchBarTextDidBeginEditing中找到的UISearchBarDelegate方法
  • 如果有一个取消按钮链接到searchController,则该方法将被调用以表示搜索栏不再是第一响应者
  • 关于ios - UISearchController.updateSearchResults和UISearchbar.textDidChange之间的区别,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43366421/

    10-09 02:46