closures多个文本框的第一个响应者/键盘

经过这个严重的事情…

简单的方法来解除键盘?

…我有多个TextFields和几个TextViews 。 是否没有办法让所有的文本字段有一个批次或组Dismiss First Responder? 我需要为每个领域制定方法吗? 也许我忽略了这个环节中的某些东西?

也许我可以按照这样的东西:

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; } 

 clickedDone.returnKeyType = UIReturnKeyDone; // in viewDidLoad - (BOOL)textFieldShouldReturn:(UITextField *)textField { [textField resignFirstResponder]; return YES; } 

该视图有一个可以使用的endEditing:方法。 文档说

使视图(或其embedded的文本字段之一)退出第一个响应者状态。

在你的视图控制器中,你可以调用:

 [[self view] endEditing:YES]; 

现在非常容易 您可以根据您的使用情况遵循不同的方法。 在我的情况下,我在UITableViewController中有多个文本字段。 我做的是这样的:

 - (void)viewWillDisappear:(BOOL)animated { [super viewWillDisappear:animated]; [self.view endEditing:YES]; } 

最佳答案是:

  1. 将UITextFieldDelegate协议添加到您的viewcontroller @interface ViewController:UIViewController
  2. 在xib中,在“Connections Inspector”小节的XCode的右侧窗格的Ulitlites部分中selecttextField,将textField的委托与.xib的“文件所有者”链接起来。
  3. 在您的Viewcontroller实现中,包含以下内容

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