如何在不创建引用插座的情况下访问静态TableViewcells中的文本字段?

时间:2013-02-12 02:44:41

标签: iphone ios uitableview uitextfield iboutlet

我在静态TableViewcells中静态放置了很多文本字段。如何在不创建每个文本字段的引用插座的情况下访问其中的文本?我试过拍摄细胞的子视图。它不起作用。任何替代方案?

我试过这个。它不起作用。

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

UITableViewCell *cell = [super tableView:tableView
                   cellForRowAtIndexPath:indexPath];
     for (UIView *subview in [cell subviews]){
        if([subview isKindOfClass:[UITextField class]]){
            UITextField *inputField = (UITextField *)subview;
            NSLog(@"%@",inputField.text);
        }
     }

    return cell;
}

3 个答案:

答案 0 :(得分:1)

您可以使用IBOutletCollection。这使得您可以将它们全部连接到一个数组,您可以通过索引访问它们,或者使用setValue:forKey:一次性解决所有问题。

答案 1 :(得分:0)

您可以随时遍历单元格的每个子视图以查找UITextField。类似的东西:

NSArray *subviews = [cell subviews];
for (view in subviews) {
    if([view isKindOfClass:[UITextField class]]) {
        //Do what you want with your UITextField
    }
}

答案 2 :(得分:0)

请按照以下步骤操作:

  1. tag设置为textField

    textField.tag = kTextFieldTag;
    
  2. 使用subView

    检索cell tag
    UITextField *refTextField = [cell viewWithTag:kTextFieldTag];
    
  3. 在这里,kTextFieldTag是不变的。