2013-02-15 15 views
8

ユーザーが検索バーにフォーカスを合わせるとキャンセルボタンを表示する検索バーを実装しました。このため私はsearchBarTextDidBeginEditingメソッドにsearchBar.showsCancelButton = YES;と書いています。 searchBarSearchButtonClickedでは、私はキーボードを辞めるので、ユーザーは完全なテーブルビューを見ることができます。UISearchBarキャンセルボタンが応答しない

問題:この時点で、検索バーのキャンセルボタンが応答していません。検索バーが再びフォーカスを取得すると応答します。これは、検索バーのキャンセルボタンのデフォルトのプロパティですか、私は私のコードで何かが不足しています。私は検索バーにフォーカスを戻さずにキャンセルボタンを使いたい。

+1

この回答をフォロー –

+0

あなたは私の答えをチェックしましたか? – Rajneesh071

+0

その真実...デザインによって、それが存在すればうまくいくはずです。 – Morkrom

答えて

4

これは検索バーのキャンセルボタンのデフォルト動作です。他の機能が必要な場合は、検索バーのcancelbuttonプロパティのチェックを外し、UIButtonをキャンセルボタンとして使用できます。

+1

ありがとう!!自分のキャンセルボタンを実装しようとします – JiteshW

3

デフォルトの動作はUISearchBarだと思っていますが、フォーカスを取得してキャンセルボタンのみが有効になっています。フォーカスがない場合、キャンセルボタンイベントUISearchBarを取得することはできません。

だからあなたのタスクを達成するための私のsuggessionは、

  • UISearchBar
  • 挿入アクション
4

で "キャンセル" という名前のUIBarButtonItemなどのカスタムビューを挿入UIBarButtonItemツールバー

  • を作成していますはい、できますUISearchBarキャンセルボタンが応答します。 デフォルトでは無効ですが、サブビューにアクセスしてから[キャンセル]ボタンを有効にすることができます。

    for (id object in [mySearchBar subviews]) 
    { 
        if ([object isKindOfClass:[UIButton class]]) 
        { 
         UIButton *searchBarCancelBtn = (UIButton*)object; 
         [searchBarCancelBtn setEnabled:YES]; 
        } 
    } 
    

    どのようにあなたがserachbarのテキストフィールドにfirstresponder辞任のですか?あなたは、いくつかの他のロジックをしたい場合Custom clear button in UISearchBar text field

  • 関連する問題