如何区分 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 纠正它