在ios8之前我们通常通过如下方法来将Cancel改为中文
-(void)searchDisplayControllerWillBeginSearch:(UISearchDisplayController *)controller
{
UISearchBar *searchBar = self.searchDisplayController.searchBar;
//[searchBar setShowsCancelButton:NO animated:YES];
searchBar.showsCancelButton = YES;
NSLog(@"controller.searchBar.subviews %d",searchBar.subviews.count);
for(id subView in [searchBar.subviews[0] subviews])
{
if([subView isKindOfClass:[UIButton class]])
{
UIButton *btn = (UIButton *)subView;
[btn setTitle:@"取消" forState:UIControlStateNormal];
}
}
}
当你在ios8上运行时,你会发现这个方法已经没有效果,由于在ios8上已经废弃了UISearchDisplayController,取而代之的是UISearchController
所以我们可以通过下面的的方法
-(void)willPresentSearchController:(UISearchController *)searchController{
[searchController.searchBar setShowsCancelButton:YES];
for ( id subView in [searchController.searchBar.subviews[0] subviews]) {
if([subView isKindOfClass:[UIButton class]])
{
UIButton *btn = (UIButton *)subView;
[btn setTitle:@"取消" forState:UIControlStateNormal];
}
}
}