Mendapatkan data dari TextField di dalam sel

Saya membuat ujung pena dengan TabelViewCell yang berisi label dan TextField, lalu saya memuat sel ini dalam TableView hanya dengan dua baris. Saya ingin mengetahui nama suatu item dan harganya, jadi saya memperbarui setiap label dalam metode cellForRowAtIndexPath karena saya dapat memiliki akses ke nilai 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;
}

Namun saya tidak tahu bagaimana saya bisa mengambil data dari TextField karena saya tidak memiliki akses ke variabel "sel" yang saya buat maupun nilai IndexPath.row.


person Diego A. Rincon    schedule 24.02.2013    source sumber


Jawaban (1)


Sejauh yang saya pahami, Anda memiliki dua pilihan. Jika di dalam SCAddBudgetItemCell Anda memiliki properti yang berisi string bidang teks maka mungkin Anda dapat mengaksesnya dari pengontrol tampilan dengan melakukan sesuatu seperti cell.yourtextfield.text (di mana bidang teks Anda adalah UITextView di dalam SCAddBudgetItemCell Anda.

Opsi lainnya adalah membuat pengontrol tampilan merespons UITextFieldDelegate dan menyimpan string saat pengguna mengeditnya dengan menerapkan metode delegasi

- (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
}
person Andres Bucci    schedule 25.02.2013