Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/42.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 当UITextField/UISearchBar';s清除按钮被按下_Iphone_Uitextfield_Uisearchbar - Fatal编程技术网

Iphone 当UITextField/UISearchBar';s清除按钮被按下

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

当按下UITextField/UISearchBar上的“clear”(清除)按钮时,是否可以访问允许执行其他操作的委托方法

谢谢

请参见:

如果将视图控制器设置为文本字段的代理(可以在interface builder中完成),则可以使用:

- (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
}

检查这里的答案,它被称为,即使我通过退格清除文本。但如何检测全部清除文本?