2011-12-09 4 views

答えて

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がこの「No Results」ラベルをつかむための公式な方法を提供することを断っていることは間違いありません。

+8

デバイス言語が英語でない場合、これは機能しません。 –

+1

@AlastairStuart良い点。剣で生きる者は剣で死ぬ。私はこれが賢明な回避策だと言った。 Appleは本当にこれを公式にカスタマイズする必要があります。 – matt

関連する問題