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]; }
最佳答案是:
- 将UITextFieldDelegate协议添加到您的viewcontroller @interface ViewController:UIViewController
- 在xib中,在“Connections Inspector”小节的XCode的右侧窗格的Ulitlites部分中selecttextField,将textField的委托与.xib的“文件所有者”链接起来。
- 在您的Viewcontroller实现中,包含以下内容
- (BOOL)textFieldShouldReturn:(UITextField *)textField { [textField resignFirstResponder]; return YES; }