7

在经历了这些之后,就像认真...

关闭键盘的简单方法?

...我有多个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;    
}
4

4 回答 4

31

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

导致视图(或其嵌入的文本字段之一)放弃第一响应者状态。

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

[[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 协议添加到您的视图控制器 @interface ViewController : UIViewController
  2. 在您的 xib 中,选择 textField,在“Connections Inspector”子部分中 XCode 右侧窗格中的 Ulitlites 部分中,将 textField 的委托与 .xib 的“文件所有者”链接。
  3. 在您的 Viewcontroller 实现中,包括以下内容

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