UISearchBar でインクリメンタルサーチを行う : Objective-C プログラミング

PROGRAM


UISearchBar でインクリメンタルサーチを行う

UISearchBar で、検索フィールドに文字が入力されて行く度に、それにあった検索結果をリアルタイムで逐次表示させたい場合には、検索フィールドに文字を入力する度に呼び出される UISearchBarDelegate の "searchBarSearchButtonClicked:" メソッドで、次のように実装します。

- (void)searchBar:(UISearchBar*)searchBar textDidChange:(NSString*)searchText

{

// ここでインクリメンタルサーチを実装します。

 

}

"searchText" として、検索フィールドに入力されている文字が渡されるので、それを用いてリアルタイムに検索処理を行うことができます。

 

このようにインクリメンタルサーチを実装していて思うこととしては、標準の UISearchBar では、検索フィールドに文字が入力されていない場合には「検索」ボタンが押せなくなっているところに困る感じです。

今回のインクリメンタルサーチのような検索方法の場合、検索ボタンが実質的にキーボードを非表示にするためだけの役目になってしまって、直感的でないというか、むしろ意味が違う気がして、とても違和感を感じてしまいます。

かといって、ボタン表示を「完了」とかにすることもできない様子で、代わりに表示できる「キャンセル」ボタンを使うのも違う気がします。

そんな違和感を解消できれば、すっきりするのですけれどね。操作感が自然なインクリメンタルサーチをどう組み上げるかも、実装の際のテーマになってきそうです。

[ もどる ]