我有一个搜索栏,我想检测用户何时点击它,以及在用户在搜索栏中编辑时禁用按钮。我怎么能这样做,因为我试图做什么,你会看到上面但它永远不会被召唤。
-(void)searchBarSearchButtonClicked:(UISearchBar *)searchBar{
NSLog(@"yes");
}
调用searchDisplayController
等其他方法。我也设置了
self.searchBar.delegate=self
但没有结果。
答案 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)
答案的快速版本:
searchBarShouldEndEditing 或 searchBarSearchButtonClicked
func searchBarShouldEndEditing(_ searchBar: UISearchBar) -> Bool {
return true
}
或
func searchBarSearchButtonClicked(_ searchBar: UISearchBar) {
}