Ios 搜索栏单击检测
我有一个搜索栏,我想检测用户何时单击它,然后在用户在搜索栏中编辑时禁用按钮。我怎么能做到这一点,因为我试图做你将看到的上面,但它从来没有调用Ios 搜索栏单击检测,ios,objective-c,uisearchbar,Ios,Objective C,Uisearchbar,我有一个搜索栏,我想检测用户何时单击它,然后在用户在搜索栏中编辑时禁用按钮。我怎么能做到这一点,因为我试图做你将看到的上面,但它从来没有调用 -(void)searchBarSearchButtonClicked:(UISearchBar *)searchBar{ NSLog(@"yes"); } 调用了其他方法,如searchDisplayController self.searchBar.delegate=self 但是没有结果。当用户点击键盘上的“搜索”(返回
-(void)searchBarSearchButtonClicked:(UISearchBar *)searchBar{
NSLog(@"yes");
}
调用了其他方法,如searchDisplayController
self.searchBar.delegate=self
但是没有结果。当用户点击键盘上的“搜索”(返回)按钮时,将调用
searchBarSearchButtonClicked:
方法。从您的问题中,我了解到您希望检测用户何时点击搜索栏,以输入搜索文本。如果是这种情况,则需要在UISearchBarDelegate中实现searchBarShouldBeginEditing:
或searchBarTextDidBeginEditing:
方法。
比如说,
-(BOOL)searchBarShouldBeginEditing:(UISearchBar *)searchBar{
NSLog(@"yes");
return YES;
}
您可以直接使用UIsearchbar的委托来获取click事件。您可以使用此委托检查单击。为了结束第二次编辑
- (BOOL)searchBarShouldBeginEditing:(UISearchBar *)searchBar
{
NSLog(@"Yes");
return YES;
}
结束编辑
- (BOOL)searchBarShouldEndEditing:(UISearchBar *)searchBar
{
return YES;
}
答案的快速版本:
func searchBarShouldEndEditing(_ searchBar: UISearchBar) -> Bool {
return true
}
哦,是的,你说得对。对不起,我错了,这个方法实际上应该返回BOOL。我已经编辑了我的答案。该方法需要返回YES,textField才能成为第一响应者。
func searchBarSearchButtonClicked(_ searchBar: UISearchBar) {
}