是否可以访问委托方法,以便在UITextField / UISearchBar上按下“清除”按钮时执行其他操作?
由于
答案 0 :(得分:33)
请参阅:UITextFieldDelegate Protocol Reference
如果将视图控制器设置为文本字段的委托(可以在界面构建器中完成),则可以使用:
- (void)clearSearchTextField
{
...
}
- (BOOL)textFieldShouldClear:(UITextField *)textField
{
if (textField == self.searchTextField) [self clearSearchTextField];
return YES;
}
答案 1 :(得分:5)
对于Swift 3:
在"清除"时执行操作按钮在UITextField上按下
ncks -d lat,17.52,30.98 -d lon,-98.52,-78.02 img.nc -O cut.nc
答案 2 :(得分:1)
对于UISearchBar
,您需要实施func searchBar(searchBar: UISearchBar, textDidChange searchText: String)
。
这是在func searchBarTextDidBeginEditing(searchBar: UISearchBar)
之前和func searchBar(searchBar: UISearchBar, shouldChangeTextInRange range: NSRange, replacementText text: String) -> Bool
之前触发的。
您的实现应该如下所示:
func searchBar(searchBar: UISearchBar, textDidChange searchText: String) {
if searchText == "" {
//Code to execute when search is cleared
}
}
答案 3 :(得分:0)
当您清除文本字段时,您将可以通过UISearchDisplayDelegate或UISearchBarDelegate(例如searchBar:textDidChange
和searchDisplayController:shouldReloadTableForSearchString
这也会导致搜索表隐藏,因此会触发
searchDisplayController:willHideSearchResultsTableView
searchDisplayController:didHideSearchResultsTableView
当搜索表隐藏时,您可以检查搜索文本是否为空,然后执行您需要执行的操作。
答案 4 :(得分:-1)
请在此处查看我的回答:https://stackoverflow.com/a/3852509/91458 - 它适用于searchBar,但也应该应用于textField。