TextField в UITableView - PullRequest
       19

TextField в UITableView

0 голосов
/ 03 декабря 2009

я новичок в iphone ... пробую этот код, но выручаю какую-то ошибку ...

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
........//// some code ...........//////////
        CGRect frame = CGRectMake(5 ,10 , 320, 44);
    UITextField *txtField = [[UITextField alloc]initWithFrame:frame];
    [txtField setBorderStyle:UITextBorderStyleNone];
    txtField.delegate=self;
    switch (indexPath.row) {
        case 0:
            txtField.placeholder=editFrndBDb.frndName;
            txtField.text=editFrndBDb.frndName;
            txtField.tag=1;
            break;
        case 1:
            txtField.placeholder=editFrndBDb.bDay;
            txtField.text=editFrndBDb.bDay;
            txtField.tag=2;
            break;
        case 2:
            txtField.placeholder=editFrndBDb.frndNote;
            txtField.text=editFrndBDb.frndNote;
            txtField.tag=3;
            break;
        default:
            break;
    }
    [cell.contentView addSubview:txtField];
    [txtField release];
    cell.selectionStyle=UITableViewCellSelectionStyleNone;
    return cell;    
}

-(IBAction ) saveChanges:(id) sender
{

    UITextField *name =(UITextField *)[self.viewWithTag:1];
    UITextField *bday= (UITextField *)[self.viewWithTag:2];

    UITextField *note=(UITextField *)[self.viewWithTag:3];
    ////  some code //////////// 

Я использую этот код для отображения текстового поля в виде таблицы, а затем для доступа к значению из текстового поля. Но получить ошибку в методе «saveChange» «UITextField * name = (UITextField *) [self.viewWithTag: 1]» error: - представление не является структурой или объединением плз меня из этого

Ответы [ 3 ]

2 голосов
/ 03 декабря 2009

не знаю, является ли это опечаткой в ​​вопросе или в коде:

[self.viewWithTag:1]

но там не должно быть точки:

[self viewWithTag:1]
2 голосов
/ 03 декабря 2009

Ваше текстовое поле не является подпредставлением представления класса ViewController (где вы ссылаетесь на «себя»). Это внутри определенного UITAbleViewCell. Поэтому вам нужно выяснить, из какой ячейки таблицы вы хотите получить содержимое текстового представления, и извлечь его из содержимого содержимого ячейки.

Кроме того, вы можете избежать некоторых проблем в будущем и проверить, что при запросе вы получите возвращаемое представление, например ::

UIView *aView = [someView viewWithTag:1];
if( aView != nil ){
...
}else{
...
}
1 голос
/ 06 декабря 2009

Ваш код для метода сохранения должен выглядеть следующим образом:

-(IBAction ) saveChanges:(id) sender
{

    UITextField *name =(UITextField *)[self.view viewWithTag:1];
    UITextField *bday= (UITextField *)[self.view viewWithTag:2];

    UITextField *note=(UITextField *)[self.view viewWithTag:3];
    ////  some code ////////////
}

Вы получаете доступ к теговому подпредставлению представления, относящегося к контроллеру, в котором размещен этот код.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...