2011-01-23 12 views
3

私のアプリケーションでUISearchBarを使用しています。これは編集フィールドと検索の両方の機能を果たします。だから私はキーボードを消したいときは、UISearchBarのキャンセルボタンを使用する必要がありますが、キャンセルボタンを画面に表示することはできません。私はiPhoneアプリケーションの開発に慣れているので、私を助けてください。UISearchbarでキーボードをキャンセルするには?

ありがとうございます!ちょうどあなたが作成したオブジェクトの名前と言葉UISearchBarを置き換える


[UISearchBar resignFirstResponder]; 

答えて

9

はこれを使用してください。

+5

を行いますどんなデリゲートにUITextFieldのデリゲートを設定することですが、実際に私はdisablesAutomaticKeyboardDismissalを上書きするために必要な私はUIModalPresentationPageSheetビューを使用していたからです。他の人がこれを私のように追跡するのが難しいと思う場合に備えて、ここで言及するだけです。 – Bryan

+1

申し訳ありませんが、UIModalPresentationFormSheetと言っているはずです – Bryan

+0

優れたコメント@ブライアン - それは私の問題でした。 – Ralphleon

1

キーボードを無効にする方法や、プログラムで実際に行う方法をお探しですか?プログラム的には、[UISearchBar resignFirstResponder]。ユーザーが達成する可能性のある方法を探している場合は、キーボードの戻るボタンを押して最初のレスポンダの状態を終了するか、UIGestureRecognizerをビューに添付して、ユーザーが外をクリックしたときにキーボード、このキーボードは遠ざかります。

1

は、単純にすべてを行う必要がUISearchbarからのUITextFieldコントロールを取得し、私はこの問題を抱えていたと思っ-(void) textFieldShouldReturn:(UITextField *)textField

-(void)viewDidLoad{  
    UIView * subView; 
    NSArray * subViews = [searchbar subviews]; 
    for(subView in subViews) 
    { 
     if([subView isKindOfClass:[UITextField class]]) 
     { 
      ((UITextField*)subView).delegate=self; 
      ((UITextField*)subView).returnKeyType=UIReturnKeyDone; 
      break; 
     } 
    } 
} 

-(BOOL) textFieldShouldReturn:(UITextField *)textField{ 
    [textField resignFirstResponder]; 
    return TRUE; 
} 
関連する問題