2011-12-09 18 views

Trả lời

16

Bạn câu hỏi có thể là một bản sao của How can I change strings of "Cancel" button, "No Results" label in UISearchBar of UISearchDisplayController?

Dưới đây là một biến thể của câu trả lời cho có:

-(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; 
} 

Về cơ bản những gì bạn đang yêu cầu phải làm chỉ đơn giản là để truy cập UILabel được hiển thị "Không có kết quả" văn bản. Không có cách nào chính thức để làm điều đó. Cách giải quyết, như được đề xuất trên trang đó, là tìm kiếm UILabel (bằng cách liệt kê tất cả các bản xem trước của bảng kết quả tìm kiếm) và sửa đổi nó. Tôi thường không thể khuyến khích loại điều này, nhưng tôi thấy Apple từ chối cung cấp một cách chính thức để vật lộn với nhãn "Không có kết quả" này là hết sức đáng ghét, vì vậy không có tổ chức nào bị cấm trong cuộc chiến đặc biệt này.

+8

Điều này sẽ không hoạt động nếu ngôn ngữ thiết bị không phải là tiếng Anh. –

+1

@AlastairStuart Điểm tốt. Người sống bằng thanh kiếm chết bởi thanh kiếm; Tôi * nói * đây là một cách giải quyết. Apple thực sự cần để chúng tôi tùy chỉnh điều này theo một cách chính thức nào đó. – matt

Các vấn đề liên quan