UISearchBarのキーボードの検索ボタンのラベルを変える
UISearchBarのキーボードのReturnキーのラベルはデフォルト「検索」になっています。
検索欄に入力すると随時検索処理を走らせて、入力が終わったらキーボードを閉じるだけの処理を行いたい場合、
「検索」ボタンだと何かしっくりこない感じがします。
そこで、キーボードの右下にある青いボタン(Returnキー)のラベルを変えてみました。
UISearchBarは、入力値はtext属性で取得出来てもTextInput自体は普通には取れませんでした。
そこで、キー値を指定して取得する方法がありました。
UISearchBarに対してvalueForKeyで「_searchField」を指定するという方法で取れます。
実装例は以下です。
//検索バー UISearchBar *searchBar = [[UISearchBar alloc] initWithFrame:CGRectMake(0, 0, self.view.bounds.size.width, 44.0f)]; searchBar.delegate = self; searchBar.showsCancelButton = YES; searchBar.placeholder = @"店名や市区名で絞り込み"; //デフォルトキーボードタイプ searchBar.keyboardType = UIKeyboardTypeDefault; searchBar.barStyle = UIBarStyleBlack; //「_seachField」キーを指定してUITextFieldを取得 UITextField *searchInputTextField = [searchBar valueForKey:@"_searchField"]; //Returnキータイプを「完了」に変更 searchInputTextField.returnKeyType = UIReturnKeyDone; //テーブルビューのヘッダーに設定 self.tableView.tableHeaderView = searchBar;
returnKeyTypeにはUIReturnKeyDone(完了)の他に、UIReturnKeyJoin(接続)やUIReturnKeyGo(開く)などがあります。
・参照
http://stackoverflow.com/questions/1407833/uisearchbar-text-color
ちなみに、キーボードを開いた時にReturnキーをタップ不可にしたくない場合は、
以下の設定を追加すれば入力値が0文字でもReturnキーをタップする事が出来ます。
//自動でReturnキー活性非活性の制御をOFF searchInputTextField.enablesReturnKeyAutomatically = NO;