2011-08-07 8 views
0

リターンまたは一部のボタンを押すときにキーボードを隠す方法について、多くのサンプルを見てきました。リターンキーやその他の制御可能なボタンを押さずにキーボードを解除する方法

私の場合は違っています:TextFieldの外側をクリックするだけで、キーボードを却下するにはどうすればいいですか?ユーザーは、いくつかのテキストを入力するテキストフィールドをタップした想像して...しかし、彼は後悔し、ちょうど私がそれを

を行う方法を見つけていないキーボードを隠し、テキストフィールド

に叩く以前のように画面を見続けたいですあなたはタッチアップ外のイベントにrasignfirstresponderことができ、事前に

おかげ

ペドロ

答えて

1

を見てみると、touchesBeganを実装し、ファーストレスポンダとしてテキストフィールドを辞任しています。

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event 
{ 
    [activeTextField resignFirstResponder]; 
} 

複数のテキストフィールドがある場合は、現在アクティブなフィールドへのポインタをactiveTextFieldインスタンス変数に格納する必要があります。これを行うには、すべてのテキストフィールドのデリゲートとしてセルフを設定し、このデリゲートメソッドを実装する必要があります。

+0

ありがとうございました...これは私が必要としていたものです – ElPiter

0


は、そうでない場合は、この答え
iphone, dismiss keyboard when touching outside of UITextField

+0

テキストフィールドは、テキストフィールドの_inside_に由来しない限り、タッチイベントを受信しないため、これは機能しません。それ以外の場合は、タッチイベントが発生します。外に触れることは、ボタンを押し始めた後、指をドラッグして取り消すことです。 –

+0

あなたは正しいです。私は何か新しいことを学んだ。ありがとう! – pasine

1

このコードを試してみてください。

- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent*)event 
{ 
UITouch *touch = [touches anyObject]; 
if([touch view] == self.view) 
    [textField resignFirstResponder]; 
} 
+1

'if([touch view] == self.view)'をチェックする理由は本当にありません。なぜなら、テキストフィールド以外のすべてのタッチでユーザーがテキストフィールド(またはタッチ自体を処理する他の要素)に触れた場合、このメソッドは呼び出されません。 –

関連する問題