繁体   English   中英

搜索栏单击检测

[英]Search Bar click detect

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

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

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

self.searchBar.delegate=self 

但没有结果。

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

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

结束编辑

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

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

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

Swift版的答案:

  1. UISearchBarDelegate添加到视图控制器分配它
  2. 委托自我searchBar.delegate =自我使用
  3. searchBarShouldEndEditingsearchBarSearchButtonClicked

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

要么

func searchBarSearchButtonClicked(_ searchBar: UISearchBar) {
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM