搜索栏点击检测

Search Bar click detect

我有一个搜索栏,我想检测用户何时单击它,然后在用户在搜索栏中编辑时禁用按钮。我该怎么做,因为我试图做你将在上面看到的事情,但它从未被调用过。

-(void)searchBarSearchButtonClicked:(UISearchBar *)searchBar{
        NSLog(@"yes");
    }

searchDisplayController 等其他方法 called.I 也已设置

self.searchBar.delegate=self 

但没有结果。

当用户点击键盘上的"Search"(return)按钮时调用searchBarSearchButtonClicked:方法。从您的问题中,我了解到您想检测用户何时点击搜索栏以输入搜索文本。如果是这种情况,您需要在 UISearchBarDelegate 中实现 searchBarShouldBeginEditing:searchBarTextDidBeginEditing: 方法。 例如,

-(BOOL)searchBarShouldBeginEditing:(UISearchBar *)searchBar{
    NSLog(@"yes");
    return YES;
}

您可以直接使用UIsearchbar的delegate获取点击事件。您可以使用此委托来检查点击。并结束对第二个的编辑。

- (BOOL)searchBarShouldBeginEditing:(UISearchBar *)searchBar
{
    NSLog(@"Yes");
    return YES;
}

结束编辑

- (BOOL)searchBarShouldEndEditing:(UISearchBar *)searchBar
{
    return YES;
}

Swift版本答案:

  1. UISearchBarDelegate 添加到您的视图控制器分配其
  2. 委托给自己 searchBar.delegate = 自己 使用
  3. searchBarShouldEndEditingsearchBarSearchButtonClicked

     func searchBarShouldEndEditing(_ searchBar: UISearchBar) -> Bool {
       return true
    }
    

func searchBarSearchButtonClicked(_ searchBar: UISearchBar) {
}