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