搜索栏单击检测

时间:2015-07-01 07:21:50

标签: ios objective-c uisearchbar

我有一个搜索栏,我想检测用户何时点击它,以及在用户在搜索栏中编辑时禁用按钮。我怎么能这样做,因为我试图做什么,你会看到上面但它永远不会被召唤。

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

调用searchDisplayController等其他方法。我也设置了

self.searchBar.delegate=self 

但没有结果。

3 个答案:

答案 0 :(得分:8)

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

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

结束编辑

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

答案 1 :(得分:2)

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

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

答案 2 :(得分:0)

答案的快速版本:

  1. UISearchBarDelegate 添加到视图控制器中分配其
  2. 授权给自己 searchBar.delegate = self 使用
  3. searchBarShouldEndEditing searchBarSearchButtonClicked

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

func searchBarSearchButtonClicked(_ searchBar: UISearchBar) {
}