项目中使用到了UISearchBar了,但键盘上有了搜索按钮,那我如果想添加一个隐藏键盘的按钮怎么办呢,下面2个办法很神奇的哦!
- (BOOL)searchBarShouldBeginEditing:(UISearchBar *)searchBar{
[self.searchBox setShowsCancelButton:YES animated:YES];//框的可侧会出现一个cancel按钮的return YES;
}
- (void)searchBarCancelButtonClicked:(UISearchBar *)searchBar{
[_searchBox resignFirstResponder];
}
[self.searchBox setShowsCancelButton:NO animated:YES];//框的隐藏掉cancel按钮的,当点击按钮的时候,就会触发- (void)searchBarCancelButtonClicked:(UISearchBar *)searchBar此方法了
怎么代码实现修改searchbar中CancelButton的title
因为Cancle按钮要在[controller.searchBarsetShowsCancelButton:YES];后才会在子视图中有,所以不能在searchDisplayControllerWillBeginSearch方法中改变Cancle按钮,只能在
searchDisplayControllerDidBeginSearch方法中加入UIButton *cancelButton;
UIView *topView = controller.searchBar.subviews[0];
for (UIView *subViewin topView.subviews) {
if ([subViewisKindOfClass:NSClassFromString(@"UINavigationButton")]) {
cancelButton = (UIButton*)subView;
[cancelButton setTitle:@"取消"forState:UIControlStateNormal];
[cancelButton addTarget:selfaction:@selector(cancelBtn)forControlEvents:UIControlEventTouchUpInside];
}
}