UISearchBar:如何防止取消按钮清除文本?

mav*_*ein 6 objective-c uisearchbar ios ios7

UISearchBar我的应用程序中有一个屏幕.当用户进入屏幕时,搜索栏中可能已存在文本.如果用户然后点击该字段然后点击取消,则不应清除搜索栏的内容.

这可以实现吗?我试图实现searchBarCancelButtonClicked,但我对text属性的修改被忽略,文本字段仍然被清除.

Ale*_*lav 8

我遇到了同样的问题并通过手动跟踪是否按下了取消按钮的状态来解决它.如果是,请重置文本时,搜索栏结束编辑,修改为searchBar.textsearchBarCancelButtonClicked不工作:

这就是我在UISearchBarDelegate课堂上所做的:

var searchTerms = ""
var searchWasCancelled = false

func searchBarTextDidBeginEditing(searchBar: UISearchBar) {
    searchWasCancelled = false
}

func searchBarCancelButtonClicked(searchBar: UISearchBar) {
    searchWasCancelled = true
}

func searchBarTextDidEndEditing(searchBar: UISearchBar) {
    if searchWasCancelled {
        searchBar.text = self.searchTerms
    } else {
        searchTerms = searchBar.text
    }
}
Run Code Online (Sandbox Code Playgroud)