5

検索機能を実装したいiOSプロジェクトに取り組んでいます。私はUISearchBarandを使用しており、暗黙的に非表示UISearchDisplayControllerにしたいと考えています。UISearchBarユーザーが をタップするUIBarButtonItemと、検索バーが表示されて「becomeFirstResponder」になりますが、ユーザーが検索バーのCancelボタンをクリックすると、検索バーは消えます。

出現は正常に機能していますが、消えるのに問題があります。Cancelユーザーがボタン (メソッド)をタップすると検索バーをsearchBarCancelButtonClicked非表示にすることができましたが、灰色の (淡色表示された) 背景UISearchDisplayControllerがタップされたときに検索バーを非表示にすることはできません。私の知る限り、このイベントを検出する方法はありません。そのため、何らかのハックを適用する必要があります。灰色の背景でのタップを検出する最良の方法を知っていますか?

4

2 に答える 2

5

だから私はついにそれを解決しました。とは別に、searchBarCancelButtonClicked:(UISearchBar *)searchBarで検索バーを非表示にする必要もありますsearchDisplayControllerDidEndSearch:(UISearchDisplayController *)controller。このコールバックは、灰色の(薄暗い)背景がタップされている場合でも呼び出されるように見えるため、検索バーを非表示にするために簡単に使用できます。

于 2012-07-11T08:49:57.740 に答える
0

UISearchDisplayController は通常、UISegmentedControl、UIResultsTable、およびキーボードで構成されます。結果テーブルは、このタッチを検出して閉じる場所です。それがわかっているので、最初の応答者を却下するそのビューに透明な UIButton を追加するか、同じ効果を達成する透明なビューに UIGestureRecognizer を追加できますか? 上から考えただけで、自分でこれを試したことはありません。うまくいくなら、うれしいです!

于 2012-06-01T19:18:52.573 に答える