如何在ios中的tableview单元格上的文本字段上返回文本字段上的键盘

Posted

技术标签:

【中文标题】如何在ios中的tableview单元格上的文本字段上返回文本字段上的键盘【英文标题】:how to return keyboard on textfield while textfield on tableview cell in ios 【发布时间】:2014-10-09 04:41:53 【问题描述】:

当我将文本字段放在 cell.contentview 上时,如何在文本字段上返回键盘,我正在使用 textfieldshouldreturn 方法但它不起作用所以请告诉我如何解决它? 这是我在表格视图单元格上设置文本字段的代码

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

    static NSString *cellidentitifier = @"cell";
    UITableViewCell * cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellidentitifier];
    if (cell ==nil)
    
        cell = [tableView dequeueReusableCellWithIdentifier:cellidentitifier];

    
    else
    
        [cell prepareForReuse];
    

    UIImageView *imgview = [[UIImageView alloc]initWithFrame:CGRectMake(30, 10, 70, 70)];
    imgview.backgroundColor = [UIColor blackColor];
    [cell.contentView addSubview:imgview];

    UITextField *_nameTF = [[UITextField alloc]initWithFrame:CGRectMake(120, 10, 160, 22)];
    _nameTF.placeholder =@"Client Name";
    _nameTF.layer.borderWidth = 1.0;
    [cell.contentView addSubview:_nameTF];
    _nameTF = nil;

    UITextField *_timeTF = [[UITextField alloc]initWithFrame:CGRectMake(120, 37, 160, 22)];
    _timeTF.placeholder = @"Time";
    _timeTF.layer.borderWidth= 1.0;
    [cell.contentView addSubview:_timeTF];
    _timeTF = nil;


    UITextField *_PhoneTF = [[UITextField alloc]initWithFrame:CGRectMake(120, 64, 160, 22)];
    _PhoneTF.placeholder = @"Phone";
    _PhoneTF.layer.borderWidth= 1.0;
    [cell.contentView addSubview:_PhoneTF];
    _PhoneTF = nil;



    return cell;

【问题讨论】:

摆脱键盘的两种方法是告诉视图结束编辑,如下所示: [self.view endEditing:YES];或告诉文本视图辞职第一响应者[textView resignFirsResponder](如果你想以这种方式解雇,可以在textfieldshouldreturn中调用) 将所有文本字段的委托设置为自我,文本字段中的 resignfirstresponder 应该返回委托操作。 【参考方案1】:

return cell 语句之前,将委托设置为 cellForRowAtIndexPath 中的文本字段,如下所示。

_nameTF.delegate = self;
_timeTF.delegate = self;
_PhoneTF.delegate = self;

-(BOOL)textFieldShouldReturn:(UITextField *)textField

    [textField resignFirstResponder];

    return YES;

并在 .h 文件中为您的 viewcontroller 设置委托,如下所示

@interface myviewVC : UIViewController<UITextFieldDelegate>

【讨论】:

以上是关于如何在ios中的tableview单元格上的文本字段上返回文本字段上的键盘的主要内容,如果未能解决你的问题,请参考以下文章

如何通过单击 tableview 单元格上的按钮获取文档 ID?

第一个单元格上的 iOS 8 自动表格视图高度错误

如何在 ipad 中的 tableview 单元格上显示弹出框单击

在目标 c 中按住 tableview 单元格上的按钮状态单击

由于可重用性问题,tableview 单元格上的图像重复

最后一个单元格上的 UITableView beginUpdate 和 endUpdate 重新加载 tableview