我有运行searchBarCancelButtonClicked:
的代码我想在用户点击离开搜索栏时运行相同的代码,即使不一定点击取消。我当前的代码如下,但有一个我无法弄清楚的问题。我在搜索栏下方放置了一个 UIView,单击该 UIView 会运行我想要的方法。
问题是,当搜索栏处于活动状态时,与 uisearchbar 关联的半透明视图出现在我的视图之上,单击该视图仍然只是关闭搜索栏,但不运行我的方法。关闭搜索栏后,单击视图确实会运行我的方法,所以我知道没关系。基本上,当搜索栏是第一响应者时,我需要能够使视图手势处于活动状态。
- (BOOL)searchBarShouldBeginEditing:(UISearchBar*)searchBar {
UITapGestureRecognizer* singleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(dismissSearch:)];
UIView *transparentView = [[UIView alloc]initWithFrame:transparentViewRect];
[transparentView setBackgroundColor:[UIColor blackColor]];
[transparentView addGestureRecognizer:singleTap];
[self.view addSubview:transparentView];
[self.view bringSubviewToFront:transparentView];
return YES;
}
- (void) dismissSearch:(UITapGestureRecognizer *)tapGesture
{
//Run my code
}