2012年4月18日水曜日

[iOS]UISearchBarキーボードボタンの"search"を"done"にする


stackoverflow.comから引用

//cSearchBarの持っているサブビューを取得
for (UIView *searchBarSubview in [cSearchBar subviews]) {
  //protocolがUITextInputTraits=キー入力関係のオブジェクトを判定
  if ([searchBarSubview conformsToProtocol:@protocol(UITextInputTraits)]) {
    @try {
      //UITextInputTraitsのオブジェクト、ここでは「検索」ボタンになるので
      //UIReturnKeyDone=完了に変更
      [(UITextField *)searchBarSubview setReturnKeyType:UIReturnKeyDone];
    }
    @catch (NSException * e) {       
      //例外処理
    }
  }
}

ただコレだとUISearchBarのキーボードに「検索」ボタン以外がある時も「完了」ボタンに変わってしまうはず。
他言語キーボードでの不具合とかありそうだな。