修改IOS中UISearchBar的取消按钮及所有视图
看了其他的文章都不试一下就发出来,更本就存在些纰漏,下面是我做了稍许修改的结果:
- (BOOL)searchBarShouldBeginEditing:(UISearchBar *)searchBar // return NO to not become first responder
{
[searchBar setShowsCancelButton:YES];
return YES;
}
- (void)searchBarTextDidBeginEditing:(UISearchBar *)searchBar // called when text starts editing
{
// 修改UISearchBar右侧的取消按钮文字颜色及背景图片
for (UIView *searchbuttons in [[[searchBar subviews] lastObject] subviews]){
if ([searchbuttons isKindOfClass:[UIButton class]]) {
UIButton *cancelButton = (UIButton*)searchbuttons;
// 修改文字
[cancelButton setTitle:@"取消" forState:UIControlStateNormal];
}
}
}
searchBar.subviews是只有一个View
下面是后台打印结果:
po [[searchBar.subviews lastObject] subviews]<__NSArrayM 0x7ff16ae3b750>(
<UISearchBarBackground: 0x7ff16ac118f0; frame = (0 0; 320 40); opaque = NO; userInteractionEnabled = NO; layer = <CALayer: 0x7ff16ac0de50>>,
<UISearchBarTextField: 0x7ff16ac4b940; frame = (8 6; 259 28); text = ''; clipsToBounds = YES; opaque = NO; gestureRecognizers = <NSArray: 0x7ff16ac4f5b0>; layer = <CALayer: 0x7ff16aaa74f0>>,
<UINavigationButton: 0x7ff16ac533c0; frame = (278 4; 34 30); opaque = NO; layer = <CALayer: 0x7ff16ac52170>>
)