iOS8 将UISearchBar cancel按钮文字改为中文“取消”


首先得遵守UISearchBarDelegate代理协议;
然后实现- (void)searchBarTextDidBeginEditing:(UISearchBar *)searchBar这个代理方法;
在代理方法中,加入以下代码:

searchBar.showsCancelButton = YES; for (id cencelButton in [searchBar.subviews[0] subviews]) { if([cencelButton isKindOfClass:[UIButton class]]) { UIButton *btn = (UIButton *)cencelButton; [btn setTitle:@"取消" forState:UIControlStateNormal]; } }

其中,searchBar.showsCancelButton = YES是必须的,不然不能把英文的“cancel”改成中文的“取消”。
运行试试吧。

2016.07.01更新
在Stackoverflow找到一个更好的方法:

[searchBar setValue("取消", forKey: "_cancelButtonText")];

这种写法解决了上面那种写法在弹出取消按钮时不自然的问题。
iOS9以后可以这样写:

[UIBarButtonItem appearanceWhenContainedInInstancesOfClasses:@[[UISearchBar class]]].title = @"取消";

iOS8也可以这样写:

[[UIBarButtonItem appearanceWhenContainedIn:[UISearchBar class], nil] setTitle:@"取消"];

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM