Ios 在UITableView的自定义单元格中引用UITextFields

Ios 在UITableView的自定义单元格中引用UITextFields,ios,objective-c,uitableview,uitextfielddelegate,Ios,Objective C,Uitableview,Uitextfielddelegate,我有一个静态UITableView,它有5个单元格,如下所示: 当用户选择第一行时,我需要执行一个方法,将数据填充到第二行 在消除单元格的阴影时,我添加了一个目标动作,如下所示: [cell.upperTextField addTarget:self action:@selector(upperTextFieldDidChange:) forControlEvents:UIControlEventEditingChanged]; 我得到了这件事的通知。如何引用第二个文本视图(查找cellfo

我有一个静态
UITableView
,它有5个单元格,如下所示:

当用户选择第一行时,我需要执行一个方法,将数据填充到第二行

在消除单元格的阴影时,我添加了一个目标动作,如下所示:

[cell.upperTextField addTarget:self action:@selector(upperTextFieldDidChange:) forControlEvents:UIControlEventEditingChanged];
我得到了这件事的通知。如何引用第二个文本视图(查找
cellforrowatinexpath
)将数据输入其中


我无法使用
didSelectRow
,因为我禁用了选择功能-用户只能点击其中一个提供的文本字段。

如果您认为将UITableViewCell子类化并在该单元格中处理该内部字段会更容易的话。然后您可以直接访问正确的文本字段

创建一个.h和.m wth

@interface YourCell : UITableViewCell
然后在脚本单元的interfacebuilder inspector部分中命名该类。 然后调用cellforrowatinexpath中的单元格

YourCell *tempCell = (YourCell*)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];

将标记值添加到UITextFields:

textField1.tag = 1;
textField1.tag = 2;
在upperTextFieldDidChange中:获取对文本字段的superview的引用并按标记查找视图:

-(void)upperTextFieldDidChange:(id)sender
{
    UITextFields *tf = (UITextFields*)sender;
    int currentTag = tf.tag;
    // Do any validation if needed
    //Get reference to text field superview
    UIView *v = [tf superview];
    // Get reference to your second text field
    int tfTag = currentTag == 1 ? 2 : 1;
    UITextField *anotherTextField = (UITextField*)[v viewWithTag: tfTag];
    // Execute your method do other stuff here
}

希望本帮助使用自定义单元格,并使用cellforrowatinexpath方法查找单元格对象,现在您可以轻松找到文本字段,如下所示

MyCellView myCell = [myTableView cellForRowAtIndexPath:<your index path>];
myCell.firstTextField 

如果您想更改文本。您可以轻松更改textField的文本。

一个单元格有一个textField或一个单元格有5个textfields?每个单元格有2个textfields和2个标签-标签在右侧。此方法是否有助于您通知[[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(TextFieldBeganEdit)名称:UITextFieldTextDidBeginEditingNotification对象:nil];嗯,你能再解释一下吗?我该如何称呼子类?非常感谢。我在UIView*v=[tf superview]和ViewWith标记处缺少跳转:)我不知道索引路径-upperTextFieldDidChange:(id)发件人只会向我发送textField-可能我缺少一些内容?通过使用此id,您可以使用id.superew获取当前单元格。别忘了检查它是否是同一个班级。谢谢!是的,我也是这样做的。我更喜欢它,因为我不必使用数字标记。
myCell.secondTextField