私はUISearchDisplayController
を持っています。キーボードの検索ボタンをクリックすると、検索後にキーボードを閉じることを避けたいと思います。 別の投稿からJosh Cashwellのソリューションを使用しようとしました:UISearchBarDelegate
を設定し、SearchBarShouldEndEditing
を実装しました。しかし、適切なイベントをキャッチするときに問題が発生しました。 SearchBarShouldEndEditing
は、検索ボタンをクリックした場合を除いて、いずれの場合でも(つまり、ビューの他の場所をクリックするか、resulttableview ...をドラッグして)はいを返します。UISearchDisplayControllerが検索ボタンで最初のレスポンダーを辞任するのを止める
私の実装: 私はsearchBarSearchButtonClicked
に変数を設定し、私はYES
またはNO
を返還しなければならないかどうかを判断するためにsearchBarShouldEndEditing
でそれを使用しようとしました。繰り返しSearchTextを押しながら検索を押しながらもうまく動作しますが、検索を押した後で他の場所をクリックすると、キーボードは閉じません。
願わくば、searchBarShouldEndEditing
が検索ボタンをクリックしたために呼び出されているかどうかを確認する良い方法がありますが、それは得られません。
ありがとうございました!
こんにちはマイケル、ありがとうございました。問題は:UISearchDisplayControllerでbecomeFirstResponderが動作しないことです。そして、私はいつもフォーカスを設定したくありません。 – dani
'UISearchDisplayController'で' becomeFirstResponder'を呼び出すことを言っていませんでしたが、あなたのキーボードが欲しいと思う***その他の***テキストフィールド( 'UISearchDisplayController'の一部ではありません)に。 –
問題:UISearchDisplayControllerでbecomeFirstResponderが動作しません(searchBarSearchButtonClickedで呼び出そうとしましたが動作しません)。 searchBarShouldEndEditingで毎回フォーカスを設定したくありません。背景は次のとおりです:検索バーにテキストを入力するためにスキャナを使用することは可能です。スキャナはスキャン後にenterを送信します。スキャンした後、フォーカスは検索バーに残りますので、検索バーをクリックしてスキャンを再開する必要はありません。しかし、ユーザーが手作業でタブを外に出すと、フォーカスが失われます。 – dani