我有一个静态UITableView
有5个单元格如下:
当用户选择顶行时,我需要执行一个将数据填充到第二行的方法。
当对细胞进行排序时,我添加了一个类似的目标动作:
[cell.upperTextField addTarget:self action:@selector(upperTextFieldDidChange:) forControlEvents:UIControlEventEditingChanged];
我收到有关此事件的通知。如何引用第二个文本视图(找到CellForRowAtIndexPath
)以将数据输入其中?
我无法使用didSelectRow
因为我禁用了选择 - 用户只能使用其中一个提供的TextField。
答案 0 :(得分:1)
将标记值添加到UITextFields:
textField1.tag = 1;
textField1.tag = 2;
在upperTextFieldDidChange中:获取对textField的超级视图的引用,并按标记查找视图:
-(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
}
希望这个帮助
答案 1 :(得分:1)
使用自定义单元格并使用CellForRowAtIndexPath方法查找单元格对象,现在您可以轻松找到如下所示的文本字段。
MyCellView myCell = [myTableView cellForRowAtIndexPath:<your index path>];
myCell.firstTextField
或
myCell.secondTextField
如果要更改文字。您可以轻松更改textField的文本。
答案 2 :(得分:0)
如果认为通过继承UITableViewCell并在该单元格中处理内部更容易。然后,您可以直接访问正确的文本字段。
创建.h和.m wth
@interface YourCell : UITableViewCell
然后在您的storyboard单元的interfacebuilder检查器部分中为该类命名。 然后在cellForRowAtIndexPath中调用单元格
YourCell *tempCell = (YourCell*)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];