UISearchDisplayController“无结果”文本

时间:2011-12-09 14:41:19

标签: iphone ios uisearchdisplaycontroller

  

可能重复:
  How can I change strings of “Cancel” button, “No Results” label in UISearchBar of UISearchDisplayController?

在我的UISearchDisplayController中,我想要在没有结果可用时更改searchResultsTableView中显示的“无结果”文本的字体。

我该怎么做?

1 个答案:

答案 0 :(得分:16)

您的问题可能与How can I change strings of "Cancel" button, "No Results" label in UISearchBar of UISearchDisplayController?

重复

以下是对答案的修改:

-(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拒绝提供正式的方法来解决这个“无结果”标签是彻头彻尾的讨厌,所以在这场特殊的战斗中没有禁止。