标签:
需求: UISearchBar的取消按钮,没有公共方法可以修改它的属性。但我们仍可以通过遍历UISearchBar的子控件来设置该"取消按钮"。
效果: 将UISearchBar的取消按钮中的"取消"文字,更改为"搜索"。
代码如下:
- (void)setSearchBar:(UISearchBar *)searchBar{
UISearchBar *searchBar = [[UISearchBar alloc] initWithFrame:CGRectMake(0, 0, kScreenWidth, 44)];
[searchBar setShowsCancelButton:YES]; //显示右侧取消按钮(必须)
/*1. 遍历UISearchBar的子控件, 在"二级子控件"中找到UINavgationButton, 也就是我们要更改的"取消按钮";
2. 得到UINagationBar(继承自UIButton), 并修改它的属性;
*/
for (UIView *view in [[searchBar.subviews lastObject] subviews]) {
if ([view isKindOfClass:[UIButton class]]) {
UIButton *cancelBtn = (UIButton *)view;
[cancelBtn setTitle:@"搜索" forState:UIControlStateNormal]; //关键步骤
}
}
[self.view addSubview:searchBar];
}
效果:
感谢 Stack Overflow的Jason的分享。
标签:
原文地址:http://www.cnblogs.com/Shendong/p/4700485.html