7

これを経て真剣に…

キーボードを閉じる簡単な方法は?

...私は複数TextFieldsといくつかを持っていTextViewsます。すべてのテキストフィールドに対してバッチまたはグループのファーストレスポンダーを却下する方法はありませんか?フィールドごとにメソッドを作成する必要がありますか?たぶん私はそのリンクの何かを見落としていましたか?

多分私はこのようなものに従うことができます:

https://stackoverflow.com/questions/3282837/problem-with-multiple-textfields-to-make-the-keyboard-dissapear

後者は理にかなっていますか?前もって感謝します。

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- =-

私はそれを考え出した....

Controller.h

@interface Controller : UIViewController <UITextFieldDelegate> {
    IBOutlet UITextField *clickedDone;
}
@property (nonatomic, retain) IBOutlet UITextField *clickedDone;

Controller.m

#import "Controller.h"
@implementation Controller
@synthesize clickedDone;

- (void)viewDidLoad
{
    [super viewDidLoad];
    [clickedDone setDelegate:self];
}

- (BOOL)textFieldShouldReturn:(UITextField *)textField {
    [textField resignFirstResponder];
    return YES;    
}
4

4 に答える 4

31

ビューには、endEditing:使用できるメソッドがあります。ドキュメントは言う

ビュー(またはその埋め込みテキストフィールドの1つ)にファーストレスポンダーのステータスを辞任させます。

ビューコントローラでは、次のように呼び出すことができます。

[[self view] endEditing:YES];
于 2011-07-19T05:21:53.427 に答える
5
clickedDone.returnKeyType = UIReturnKeyDone;  // in viewDidLoad

- (BOOL)textFieldShouldReturn:(UITextField *)textField 
{
   [textField resignFirstResponder];
   return YES;    
}
于 2011-07-19T06:23:34.383 に答える
2

今ではとても簡単です。ユースケースに応じて、さまざまなアプローチに従うことができます。私の場合、UITableViewControllerに複数のテキストフィールドがありました。私がしたことはこれです:

- (void)viewWillDisappear:(BOOL)animated {
    [super viewWillDisappear:animated];

    [self.view endEditing:YES];
}
于 2014-10-15T04:36:28.247 に答える
1

ベストアンサーは:

  1. ビューコントローラにUITextFieldDelegateプロトコルを追加しました@interfaceViewController:UIViewController
  2. xibでtextFieldを選択し、XCodeの右側のペインの「ConnectionsInspector」のサブセクションにあるUlitlitesセクションで、textFieldのデリゲートを.xibの「File'sOwner」にリンクします。
  3. Viewcontrollerの実装に、次のものを含めます

- (BOOL)textFieldShouldReturn:(UITextField *)textField 
{
   [textField resignFirstResponder];
   return YES;    
}
于 2012-11-10T00:58:34.590 に答える