インターフェイスに UISearchBar があり、テキストが入力された後に検索バーに表示される小さなクリア ボタンの動作をカスタマイズしたい (十字の付いた小さな灰色の円で、右側に表示される)検索フィールドの側面)。
基本的に、検索バーのテキスト (デフォルトの実装) をクリアするだけでなく、インターフェイスから他のものもクリアする必要がありますが、独自のメソッドの 1 つを呼び出します。
UISearchBar クラスまたは UISearchBarDelegate プロトコルのドキュメントには何も見つかりません。この動作に直接アクセスできるようには見えません。
私が注意したことの1つは、ドキュメントがデリゲートメソッドについて次のように説明していたことです。
- (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText;
クリアボタンがタップされた後に呼び出されます。
最初に、検索バーのテキスト プロパティをチェックするコードをそのメソッドに書きました。空の場合はクリアされ、他のすべてのことを実行します。
ただし、これには2つの問題があります:
まず、何らかの理由で、メソッドの最後で検索バーに rejectFirstResponder を指示しても、どこかがそれをbecomeFirstResponderに戻しています。本当に忌々しい...
第 2 に、ユーザーがクリア ボタンを使用せず、キーボードの削除ボタンを使用してバー内のテキストを単純に削除すると、このメソッドが起動され、検索結果が消えます。良くない。
正しい方向へのアドバイスや指針は素晴らしいでしょう!
ありがとう!