【问题标题】:Dismissing the First Responder/Keyboard with multiple Textfields关闭具有多个文本字段的第一响应者/键盘
【发布时间】:2011-07-19 03:19:30
【问题描述】:

经历过这件事后,真的很喜欢......

Easy way to dismiss keyboard?

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

【问题讨论】:

  • 只有一个字段是第一响应者,您只需辞职那个。
  • 另一个 SO 问题的链接已失效。

标签: ios objective-c iphone uitextfield first-responder


【解决方案1】:

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

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

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

[[self view] endEditing:YES];

【讨论】:

  • 谢谢!你的解决方案是最好的,特别是当有很多领域需要处理时。
  • 这是最好的解决方案。谢谢!
【解决方案2】:
clickedDone.returnKeyType = UIReturnKeyDone;  // in viewDidLoad

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

【讨论】:

    【解决方案3】:

    现在很容易。您可以根据您的用例采用不同的方法。就我而言,我在 UITableViewController 中有多个文本字段。我所做的是这样的:

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

    【讨论】:

      【解决方案4】:

      最佳答案是:

      1. 为您的视图控制器 @interface 添加了 UITextFieldDelegate 协议 视图控制器:UIViewController
      2. 在您的 xib 中,在右侧的 Ulitlites 部分中选择 textField “连接检查器”小节中 XCode 的侧窗格, 将 textField 的委托与 .xib 的“文件所有者”链接起来。
      3. 在您的 Viewcontroller 实现中,包括以下内容

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

      【讨论】:

        猜你喜欢
        • 2016-07-07
        • 2020-08-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多