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