1

iOSアプリにUITextFieldがあります。ユーザーがテキストを入力して[戻る]をクリックすると、「resignFirstResponder」を使用したIBActionの呼び出しにより、キーボードが消えます。

ただし、XCodeでは、UIView自体からファイル所有者に行をドラッグすることはできません。UIViewの背景に触れることを、キーボードが消えるIBActionに関連付けるにはどうすればよいですか?

4

4 に答える 4

10

UITapGestureRecognizerを使用できます。参照:UITableViewの背景に触れてキーボードを閉じる

したがって、テーブルビューの代わりに、ビューに追加するだけです。

UITapGestureRecognizer *gestureRecognizer = [[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(hideKeyboard)] autorelease];
gestureRecognizer.cancelsTouchesInView = NO; //so that action such as clear text field button can be pressed
[self.view addGestureRecognizer:gestureRecognizer];

キーボードを隠す方法があります

- (void) hideKeyboard {
    [self.view endEditing:YES];
}
于 2012-04-24T00:51:31.437 に答える
1

UIViewからファイルの所有者にドラッグして、タッチでアクションを関連付けることができないことにすでに気づきました。

これを回避する方法は、背景ビューのクラスをからに変更し、UIViewそこUIControlからアクションをコントローラーのメソッドにフックして編集を停止することです。

これは、UIControlがタッチイベントに応答でき、UIViewは応答しないためですが、UIControlはUIViewをサブクラス化するため、UIViewの代わりに使用できます。

この手法を使用したサンプルプロジェクトを少し前に作成しました。のxibsecondViewControllerファイルを見て、背景ビューのクラスを変更し、それをコントローラーのアクションに接続してキーボードを閉じる方法を確認してください。

于 2012-04-24T01:04:31.340 に答える
0

touchesBegin with Eventを使用して、ビューの編集を終了します。

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {

  [self.view endEditing:YES];

  }
于 2015-04-15T13:35:33.697 に答える
-1

これを行う簡単な方法の1つは、ビューの背後に大きな透明なUIButtonを作成することです。

于 2012-04-24T00:21:29.317 に答える