Returnキーを押してキーボードを非表示にする方法
4 に答える
覚えておく必要のあることがいくつかあります。開発者が設定するのを忘れている一番の部分は、textFieldのデリゲートです。
Interface Builderを使用している場合は、textFieldのデリゲートをファイルOwnerに設定する必要があることを覚えておく必要があります。
代替テキストhttp://www.thoughtblog.com/imgs/delegate.png
Interface Builderを使用していない場合は、テキストフィールドのデリゲートを自分自身に設定していることを確認してください。returnTypeも含めます。たとえば、textFieldがgameFieldと呼ばれた場合:
gameField.delegate = self;
gameField.returnType = UIReturnKeyDone;
ViewControllerのUITextFieldDelegateも実装する必要があります。
@interface YourViewController : UIViewController <UITextFieldDelegate>
最後に、 textFieldShouldReturnメソッドを使用して、 [textFieldresignFirstResponder]を呼び出す必要があります。
-(BOOL) textFieldShouldReturn:(UITextField*) textField {
[textField resignFirstResponder];
return YES;
}
すべてのtextFieldsはこれと同じメソッドを使用するため、この設定は1回だけで済みます。textFieldにデリゲートが設定されている限り、UITextFieldDelegateがインターフェイスに実装され、textFieldShouldReturnメソッドを追加して、セットのresignFirstResponderを呼び出します。
質問にはもっと多くの情報を含める必要がありますが、これがあなたが探しているものかもしれないと思います:
まず、View Controller に UITextFieldDelegate を実装させます。
@interface MainViewController : UIViewController <UITextFieldDelegate> {
次に、このメソッドをコントローラーに追加します。
- (BOOL)textFieldShouldReturn:(UITextField *)textField {
[textField resignFirstResponder];
return YES;
}
UITextFieldDelegateのドキュメントを読んで、他に何ができるかを確認してください。
キーボードは、編集可能なもの (通常は UITextField) がファーストレスポンダーになった場合にのみ表示されます。したがって、キーボードをなくすには、textField を firstResponder にならないようにする必要があります。幸いなことに、これは 1 行のコードです。
[myTextField resignFirstResponder];
次の2つの方法を使用します。
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField {
activeTextField = textField;
return YES;
}
- (BOOL)textFieldShouldReturn:(UITextField *)textField {
activeTextField = nil;
[txtPassword resignFirstResponder];
[txtUserName resignFirstResponder];
return YES;
}
各テキストフィールドにデリゲートを指定していることを確認してください。そのためには、ビューに移動する必要があります。右クリック 。デリゲートを表示するように設定します。