在我的UISearchDisplayController中,我想要在没有结果可用时更改searchResultsTableView中显示的“无结果”文本的字体。
我该怎么做?
答案 0 :(得分:16)
以下是对答案的修改:
-(BOOL)searchDisplayController:(UISearchDisplayController *)controller
shouldReloadTableForSearchString:(NSString *)searchString {
dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, 0.001);
dispatch_after(popTime, dispatch_get_main_queue(), ^(void){
for (UIView* v in self.sbc.searchResultsTableView.subviews) {
if ([v isKindOfClass: [UILabel class]] &&
[[(UILabel*)v text] isEqualToString:@"No Results"]) {
// .. do whatever you like to the UILabel here ..
break;
}
}
});
return YES;
}
基本上你要做的只是访问显示“无结果”文本的UILabel。没有正式的方法可以做到这一点。该页面上建议的解决方法是查找UILabel(通过枚举搜索结果表的所有子视图)并对其进行修改。我一般不能鼓励这类事情,但我发现Apple拒绝提供正式的方法来解决这个“无结果”标签是彻头彻尾的讨厌,所以在这场特殊的战斗中没有禁止。