在UITableViewCell中访问UITextField

时间:2012-10-02 20:53:46

标签: iphone objective-c ios xcode

我正在使用带有UITableView的子类原型单元格的UITextField。细胞总共使用4次,共4次。这是它的代码:

...
- (void)viewDidLoad
{
[super viewDidLoad];
cellTitles = [[NSArray alloc] initWithObjects:@"Smell", @"Taste", @"Suits", @"Notes",  nil];
}

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
return [cellTitles count];
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return [cellTitles count] / [cellTitles count];
}

- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section
{
    return [cellTitles objectAtIndex:section];
}  

- (AddInfoCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *cellIdentifier = @"AddInfoCell";

AddInfoCell *addInfoCell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier];

if (addInfoCell == nil) {
    addInfoCell = [[AddInfoCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdentifier];
}
addInfoCell.cellTextView.delegate = self;

return addInfoCell;
}

我想将每个单元格中的文本添加到dataSource对象:

-(IBAction)nextButtonPressed:(id)sender {
...
[[dataSource objectAtIndex:dataSourceIndex] setObject:* forKey:@"Smellnote"];
[[dataSource objectAtIndex:dataSourceIndex] setObject:** forKey:@"Tastenote"];
//etc
…
}

*来自单元格1的文本

**来自单元格2的文本

如何访问我想要的文字?

1 个答案:

答案 0 :(得分:1)

也许你看错了。为什么不让textField的委托成为单元格本身,即在Cell的类中,在init ...方法中将委托设置为File'sOwner或self。

创建对dataSource的引用,并将dataSource传递给您的单元格,以及字典的@“Key”。

cell.dataSource = self.dictionary;
cell.dataKey = @"Tastenote";
//in cell .m
//textFieldDelegate method...
[self.dataSource setObject:self.cellTextView.text forKey:self.dataKey];