2012-09-16 14 views
16

UISearchBarに自動的に([検索]ボタンを押すなどの)新しい検索を開始させるにはどうすればよいですか?これを達成する簡単な方法はありますか?UISearchBarでプログラムで強制的に検索を実行できますか?

+0

[UISearchBarに自動的にテキストカーソルを表示](http://stackoverflow.com/questions/7441839/automatically-show-text-cursor-in-uisearchbar) – Pascal

+0

重複はありません。検索ボタンをクリックしたときと同じように、検索プロセスを開始したいと考えています。問題は、ロジックがライブラリにあり、そこにはアクセスできない(ソースコードなし) – nja

+0

ああ、わかりました。その情報を質問に入れてください。 ;) – Pascal

答えて

1

はい、UISearchbarDelegatesearchBarSearchButtonClicked:への暗黙的な呼び出しが必要です。このデリゲートの詳細については、official docをご覧ください。

+0

返答いただきありがとうございます。私たちは、searchBarがアクセスできないビューに埋め込まれているため、この方法が機能していないという問題があります。他のヒントはありますか? – nja

+1

しかし、コードのどこかに、検索を処理するためのデリゲートクラスが必要ですか? – tiguero

+0

ソースコードにアクセスできないライブラリで実装されているため、コードのその部分にアクセスすることはできません。私たちはそこで使われているデリゲートを見つけようとしていますが、これまで成功していません。 – nja

5

ちょうど検索入力フィールドがファーストレスポンダになってきた:

[self.searchInputField becomeFirstResponder]; 
+0

返事をありがとう、この文脈で自己は何ですか? – nja

+0

検索バー:-) – tiguero

+0

検索バーのテキストフィールドにアクセスする方法を理解したので、becomeFirstResponderはキーボードのみを表示していますが、自動的に検索を開始します。 – nja

14

私はUISearchViewControllerが自動的に検索を実行するためにプログラム的に検索フィールドの値を変更する前に、アクティブにUISearchViewControllerを設定するために必要なことがわかりました。

// Need to set the searchDisplayController to active to 
// make the changes in search text trigger a search. 
self.searchDisplayController.active = YES; 
self.searchDisplayController.searchBar.text = @"New search string"; 
+0

これは美しく動作し、特定のデリゲートメソッドがトリガされないなど、他にもいくつかの問題を修正しました。ありがとうございました。 – inwit

+0

通知する価値がある、その順序は重要です:) –

0

それは馬鹿ではないので、ダムようだが、作品;)

NSString * forceReload = self.searchDisplayController.searchBar.text; 
self.searchDisplayController.searchBar.text = forceReload; 
あなたの検索バーを強制することができ3210
0

のObjective C:3.0

[self searchBar:yourSearchBarName textDidChange: yourSearchingString]; 

スウィフト:

self.searchBar(self.yourSearchBarName, textDidChange: yourSearchingString) 

これはあなたの検索バーをトリガします。

関連する問題