Iphone 当UITextField/UISearchBar';s清除按钮被按下
当按下UITextField/UISearchBar上的“clear”(清除)按钮时,是否可以访问允许执行其他操作的委托方法 谢谢请参见: 如果将视图控制器设置为文本字段的代理(可以在interface builder中完成),则可以使用:Iphone 当UITextField/UISearchBar';s清除按钮被按下,iphone,uitextfield,uisearchbar,Iphone,Uitextfield,Uisearchbar,当按下UITextField/UISearchBar上的“clear”(清除)按钮时,是否可以访问允许执行其他操作的委托方法 谢谢请参见: 如果将视图控制器设置为文本字段的代理(可以在interface builder中完成),则可以使用: - (void)clearSearchTextField { ... } - (BOOL)textFieldShouldClear:(UITextField *)textField { if (textField == self.searchTex
- (void)clearSearchTextField
{
...
}
- (BOOL)textFieldShouldClear:(UITextField *)textField
{
if (textField == self.searchTextField) [self clearSearchTextField];
return YES;
}
清除文本字段时,将发生几个事件,您可以通过或UISearchBarDelegate访问这些事件,例如
searchBar:textDidChange
和searchDisplayController:shouldReloadTableForSearchString
这也会导致搜索表隐藏,从而触发
searchDisplayController:willHideSearchResultsTableView
searchDisplayController:didHideSearchResultsTableView
当搜索表将隐藏时,您可以检查搜索文本是否为空,然后执行您需要执行的任何操作。请参见我的回答:–它用于搜索栏,但也应应用于文本字段。对于
UISearchBar
您将要实现func searchBar(searchBar:UISearchBar,textDidChange searchText:String)
这在func searchBarTextDidBeginEditing(searchBar:UISearchBar)
之前和func searchBar(searchBar:UISearchBar,shouldChangeTextInRange range:NSRange,replacementText:String)->Bool
之前触发
您的实现应该如下所示:
func searchBar(searchBar: UISearchBar, textDidChange searchText: String) {
if searchText == "" {
//Code to execute when search is cleared
}
}
对于Swift 3: 按下UITextField上的“清除”按钮时执行操作
func textFieldShouldClear(_ textField: UITextField) -> Bool {
if textField == yourTextFieldName {
// do some action
}
return true
}
检查这里的答案,它被称为,即使我通过退格清除文本。但如何检测全部清除文本?