iPhoneアプリ開発の虎の巻
HOME > UISearchBar

UISearchBar

UISearchBarはデータを検索したい時などに使用します。
一般的には、ナビゲーションバーの中や、テーブルビューのヘッダー部分などに配置して使用されることが多いです。

UISearchBar

UISearchBarのクラス階層

NSObjectUIResponderUIView ↑ UISearchBar

生成

// 生成例
UISearchBar *sb = [[[UISearchBar alloc] init] autorelease];

UISearchBarのプロパティ

【UISearchBarの主要プロパティ】
プロパティ名/型 読専 説明
delegate
(UISearchBarDelegate)
デリゲートを指定する
(例)sb.delegate = self;
showsCancelButton
BOOL
キャンセルボタンの表示・非表示
 YES:表示する
 NO:表示しない(デフォルト)
(例)sb.showsCancelButton = YES;
prompt
NSString
タイトルを設定する
(例)sb.prompt = @"プロンプト";
placeholder
NSString
プレースホルダ(テキストフィールドに表示する説明文)を設定する
(例)sb.placeholder = @"検索ワードを入力してください";
keyboardType
(UIKeyboardType)
入力時のキーボードを指定する
 UIKeyboardTypeDefault:デフォルト
 UIKeyboardTypeASCIICapable:英字
 UIKeyboardTypeNumbersAndPunctuation:数字・記号
 UIKeyboardTypeURL:URL用
 UIKeyboardTypeEmailAddress:Email用
 UIKeyboardTypeNumberPad:テンキー
 UIKeyboardTypePhonePad:電話番号用
(例)sb.keyboardType = UIKeyboardTypeURL;
text
NSString
値の設定・取得をする
(例)入力された値を取得する
 NSString *val = sb.text;
barStyle
(UIBarStyle)
スタイルの設定をする
 UIBarStyleDefault:灰色
 UIBarStyleDefault
 UIBarStyleBlack:黒色
 UIBarStyleBlack
(例)黒色のスタイルに設定する
 sb.barStyle = UIBarStyleBlack;
tintColor
UIColor
色を指定する
(例)赤色に設定する
 sb.tintColor = [UIColor redColor];
 赤色のUISearchBar

主要なプロパティのみ掲載しています。
 上記「UISearchBarのクラス階層」にあるクラスのプロパティも使用できます。

UISearchBarのデリゲートメソッド

【UISearchBarDelegate】
メソッド 説明
-(void)searchBarSearchButtonClicked:
(UISearchBar*)searchBar
キーボードのSearchボタンタップ時に呼ばれる
-(void)searchBarCancelButtonClicked:
(UISearchBar*)searchBar
showsCancelButton=YES にてキャンセルボタンを表示時、そのキャンセルボタンがタップされた時に呼ばれる
-(void)searchBar:(UISearchBar*)searchBar
textDidChange:(NSString*)searchText
値が変更される都度呼び出される

主要なデリゲートメソッドのみ掲載しています。

UISearchBarの例文

// サーチバー例文
UISearchBar *sb = [[[UISearchBar alloc] init] autorelease];
sb.delegate = self;
sb.showsCancelButton = YES;
sb.prompt = @"タイトル";
sb.placeholder = @"検索ワードを入力してください";
sb.keyboardType = UIKeyboardTypeDefault;
sb.barStyle = UIBarStyleBlack;
[self.view addSubview:sb];

// テーブルのヘッダーに配置する場合
tableView.tableHeaderView = sb;
totop