UITextfield 键盘辞职

Posted

技术标签:

【中文标题】UITextfield 键盘辞职【英文标题】:UITextfield keyboard resign 【发布时间】:2012-11-27 05:43:28 【问题描述】:

在每个单元格的 uitableview 中,当用户编辑文本字段并且按下屏幕上的任何其他按钮后,键盘没有退出时,我都有 uitextfield。我在文本字段代表中做了以下操作

- (void)textFieldDidBeginEditing:(UITextField *)textField

    textfieldInCell = textField;


-(BOOL)textFieldShouldReturn:(UITextField *)textField

    [textField resignFirstResponder];
    textfieldInCell=nil;// this is the ivar i am using for each textfield in cell.
    return YES;


-(void)textFieldDidEndEditing:(UITextField *)textField

    textfieldInCell=textField;
    // do the process...
    textfieldInCell=nil

一旦用户点击任何其他按钮但键盘没有退出,我也会调用 shouldReturn 委托函数。我哪里错了?

【问题讨论】:

你为你的 TextField 设置了代理吗?像 textfield.delegate =self;然后将文本字段添加到单元格。 【参考方案1】:

确认您将创建的每个文本字段的委托与视图控制器绑定,并在文本字段中添加一行代码并结束编辑:-

-(void)textFieldDidEndEditing:(UITextField *)textField

   // add the following line
   [textField resignFirstResponder];
   textfieldInCell=textField;
   // do the process...
    textfieldInCell=nil 


【讨论】:

谢谢你,我刚刚添加了 resignFirstResponder 代码,我已经在添加单元格时设置了委托,现在它可以工作了【参考方案2】:

您是否已将文本字段的委托与您的控制器绑定?或者您是否检查了 textFieldShouldReturn 调用?

我认为,在您的情况下,绑定缺少智能视图控制器。

谢谢

【讨论】:

【参考方案3】:

在要添加文本字段的表格视图中添加一行。

<YOUR_TEXTFIELD>.delegate = YES;

享受编程

【讨论】:

【参考方案4】:

首先检查您是否给了委托,然后将委托给UITextField,然后当您调用按钮的方法时,像下面这样辞职这个文本字段......

-(IBAction)yourButton_Clicked(id)sender

   [yourTextField resignFirstResponder];
   ////your code write here


【讨论】:

通过这种方式,您将如何跟踪正在编辑的文本字段,因为每个单元格中都有一个文本字段。 @ChiragBhutani 在这里辞职所有文本字段,否则会触发带有所有单元格子视图的循环,在此只需编写代码 view == [UITextField class] 辞职视图伙伴.. 对吗?? :) no paras 我所做的是我在 TextfieldDidBegin 分配的每个单元格中都有一个用于 uitextfield 的 ivar,在 DidEndEditing 中我将其设为 nil 并为每个文本字段分配委托,同时将其添加到单元格中跟踪正在编辑哪个文本字段的方式【参考方案5】:

您必须尝试将标签值分配给文本字段,然后在应该返回您使用该标签隐藏键盘的方法中(如果您分配标签 -1 则)

-(void)textFieldDidEndEditing:(UITextField *)textField
    if(textField.tag==-1)
     [textField resignFirstResponder];
     


【讨论】:

以上是关于UITextfield 键盘辞职的主要内容,如果未能解决你的问题,请参考以下文章

UITableViewCell 中的 UITextfield 辞职 FirstResnponder

为啥辞职急救人员不隐藏键盘?

辞职第一响应者 UITextfield

UITextField辞职第一响应者后如何更改UIScrollView contentSize

编辑 UITextField 时如何关闭键盘

SwiftUI 从 UITextField 中关闭键盘