如何区分 UITableView 中的 UITextField?

Posted

技术标签:

【中文标题】如何区分 UITableView 中的 UITextField?【英文标题】:How to differentiate UITextField inside a UITableView? 【发布时间】:2014-05-18 23:39:06 【问题描述】:

我有一个简单的项目,其中包含一个带有自定义单元格的 UITableView,在这个单元格中有一个 UITextField,所以我有一个调用函数 'addField' 的按钮,当调用此函数时我为变量 numberOfRows 增加 +1 值,然后调用负责更新表的命令,如下所示:

-(void)AddField

    numberOfRows++;
    [tableView reloadData];



- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section

    return numberOfRows;

这样做会创建一个带有新文本字段的新表格行以输入另一个值。

在我的单元格中,我将 UITextField 与 Outlet 连接起来:

 IBOutlet UITextField *myFields;

awakeFromNib 里面我有一个检查用户是否正在输入的代码:

- (void)awakeFromNib

    [campoTexto addTarget:self
             action:@selector(change:)
   forControlEvents:UIControlEventEditingChanged];


-(void)change:(UITextField *)textField

    NSLog(@"What The textField I'm Typing? -> %ld",(long)textField.tag);


我要做的就是尝试找到某种方法来区分我正在输入的文本字段,UITableView 可以区分它们的行 (0 .. n),我想我可以区分这个 UITextField (0 ... n )。

谁能给我一些帮助,或者知道网络上的教程可以解释这种事情吗?

谢谢。

【问题讨论】:

谷歌快速搜索后,你会发现这个问题已经回答了好几次了。这是@rmaddy 的一个很好的回答:***.com/questions/17757806/… 【参考方案1】:

在 tableView 单元格中识别自定义控件的最佳方法,或者我更喜欢在 tableView 数据源方法 cellForRowAtIndexPath: 中为自定义控件设置标签。

cell.yourTextField.tag = indexPath.row;

然后,您可以从方法中的相应标记中获取indexPath,如下所示:

-(void)change:(UITextField *)textField

    NSIndexPath *indexPath = [NSIndexPath indexPathForRow:textField.tag inSection:0];

希望这会有所帮助:)!

【讨论】:

感谢代码 cell.yourTextField.tag = indexPath.row;帮了我很多谢谢:D

以上是关于如何区分 UITableView 中的 UITextField?的主要内容,如果未能解决你的问题,请参考以下文章

在 UITableview 中,键入的文本字段值在不同的单元格中重复,如何使用目标 c 纠正它

如何区分具有相同自定义单元格的两个 UITableView

将 managedobject 从 uitableview 传递到文本字段以在核心数据模型中进行编辑

区分 UITableView 中索引 0 处的无选择和选择

UITableView 区分滑动删除和多行选择

如何区分用户点击我的表格视图单元格和用户点击单元格中包含的子视图?