将TableView中的TextFields添加到数组中

时间:2011-10-13 10:31:19

标签: iphone objective-c ios xcode

我已经为表格视图中的所有单元格创建了一个textField。

self.field = [[UITextField alloc]initWithFrame:CGRectMake(20, 44, 222, 31)];
self.field.delegate = self;
[cell.contentView addSubview:self.field];

所以所有行都有一个文本字段。但我想单独访问它们。我的一位前辈要我将它们添加到一个阵列中并使用它们并给我留下这一行代码

[self.array addObject:self.field];

接下来是什么?我应该如何使用它们?

4 个答案:

答案 0 :(得分:1)

另一种方法是通过知道textfields superview的索引路径(即uitableview单元格)...知道indexpath.row你知道哪些单元格使用文本字段

首先在textfield委托方法中获取textfield的superview  -textfielddidendediting

UITableviewCell *cell=(UITableviewCell*)[textfield superview];
NSindexPath *indexpath=[self.tableview indexPathForCell:cell];

现在你可以使用这个索引路径来查找文本字段所属的单元格并相应地保存值

答案 1 :(得分:1)

UITextField * fieldOne = [arrayName objectAtIndex:locationOfTheTextField];

答案 2 :(得分:0)

相反,您可以将标记(您的indexpath.row)分配给yourTextField,然后您就可以获取数据。喜欢

self.field.tag = indexPath.row;

要从Field获取数据,您可以使用

for (int indexVal=0;indexVal<noOfRows; indexVal++)
{
        NSString *inputData=(UITextField *)[self.view viewWithTag:indexVal].text;   
        //Add this to array or something and use it
} 

答案 3 :(得分:0)

你正在以错误的方式创建它,你创建了一个textField的全局对象,然后你知道从哪一行textField你要选择哪个文本。

因此,您需要在本地为每一行创建textFields,并将标记设置为每个textField,并将其编入indexPath.row。

UITextField *txt = [[UITextField alloc]initWithFrame:CGRectMake(20, 44, 222, 31)];
txt.delegate = self;
txt.tag=indexPath.row;
[cell.contentView addSubview:txt];