UITableView 中的文本字段

Posted

技术标签:

【中文标题】UITableView 中的文本字段【英文标题】:TextField in UITableView 【发布时间】:2009-12-03 13:41:42 【问题描述】:

我是 iphone 世界的新手..帮我解决这个问题。

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

    NSString *MYIdentifier =@"MyIdentifier";

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:MYIdentifier];
    if(cell==nil)
    
        cell=[[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:MYIdentifier] autorelease];
    
    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];

    NSInteger fid=editFrndBDb.friendId;

    if(name.text==NULL)
        name.text=@" ";
    if(bday.text!=NULL)
        bday.text=@" ";
    if(note.text!=NULL)
        note.text=@" ";

    [editFrndBDb editFriendInfo:name.text frndBdayIs:bday.text frndNoteIs:note.text frndIdIs:fid];
       

语句中的 saveChange 方法出错

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

错误信息:-

"viewWithTag is some thing not a structure or a union:"

帮我解决这个问题...

【问题讨论】:

【参考方案1】:

您错误地使用了消息的属性语法

应该是

[self viewWithTag:3];

不是

[self.viewWithTag:3];

【讨论】:

我已经尝试过 [self viewWithTag:3] 但使用它时会出现异常......在这一行...... 你也有 [self viewWithTag:2] 和 [self viewWithTag:1] 也改变了这些

以上是关于UITableView 中的文本字段的主要内容,如果未能解决你的问题,请参考以下文章

具有文本字段的 uitableview 中的滚动问题

使 UIViewController 中的 UITableView 滚动到文本字段

选择 UITableView 中的行时如何清除文本字段?

在 UITableView 上 reloadData 后文本字段没有被选中

iphone,UITableView中的UITextField

UITable 视图中的单元格队列大小