0

我创建了一个带有 TabelViewCell 的笔尖,其中包含一个标签和一个 TextField,然后我将此单元格加载到只有两行的 TableView 中。我想捕获一个项目的名称和价格,所以我更新了 cellForRowAtIndexPath 方法中的每个标签,因为我可以访问 indexPath.row 值。

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *simpleCellIdentifier = @"AddBudgetItemCell";

    SCAddBudgetItemCell *cell = (SCAddBudgetItemCell *)[tableView dequeueReusableCellWithIdentifier:simpleCellIdentifier];

    if(cell == nil)
    {
        NSArray *nib = [[NSBundle mainBundle] loadNibNamed:simpleCellIdentifier owner:self options:nil];

        cell = [nib objectAtIndex:0];
    }

    cell.selectionStyle = UITableViewCellSelectionStyleNone;
    cell.dataTextField.delegate = self;

    switch (indexPath.row)
    {
        case 0:
            cell.titleLabel.text = @"Item";
            break;

        case 1:
            cell.titleLabel.text = @"Price ¥";
            break;

        default:
            break;
    }

    return cell;
}

但是我不知道如何从 TextField 中检索数据,因为我无法访问我创建的变量“cell”和 IndexPath.row 值。

4

1 回答 1

0

据我了解,您有两种选择。如果在你的内部SCAddBudgetItemCell你有一个包含文本字段字符串的属性,那么你可能可以通过执行类似的操作从视图控制器访问它cell.yourtextfield.text(其中 yourtexfield 是 SCAddBudgetItemCell 中的 UITextView。

另一种选择是让视图控制器响应 UITextFieldDelegate 并在用户通过实现委托方法对其进行编辑时存储字符串

- (void)textFieldDidBeginEditing:(UITextField *)textField{
    //Whenever people start editing your textfield
}
-(BOOL)textFieldShouldReturn:(UITextField *)textField{
     //
return YES;
}
-(void)textFieldDidEndEditing:(UITextField *)textField
{
    //This is obvious. Whenever they end
}
于 2013-02-25T09:05:39.330 回答