ios从tableViewCell中的textfield获取文本值

时间:2015-10-30 11:00:04

标签: ios objective-c uitableview uitextfield

在我的ViewController中,我创建了一个名为UITextField *txtMyName;的textField 之后,我将textField添加到tableViewCell [cell addSubview:txtMyName];

我可以在textField中编辑文字,但是当我从textField _strFullName = txtMyName.text;获取文字时

但是,它是空值。

如何解决此问题!

*****编辑****

if (indexPath.row == 0) {
        [self setFrameTextField:cell];
        [self CustomTextField:cell :txtMyName];
        if ([[dict_infoFriend objectForKey:@"Fullname"] isEqualToString:@" "]) {
            txtMyName.placeholder = @"Name";
        }
        else{
            txtMyName.text = [dict_infoFriend objectForKey:@"Fullname"];
        }
        [cell addSubview:txtMyName];
    }
else if (indexPath.row == 1){
        button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
        if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
            button.frame = CGRectMake(cell.frame.size.width - 10, 0, 130, 40);
        }
        else{
            button.frame = CGRectMake(cell.frame.size.width / 2 - 65, 0, 130, 40);
        }
        [self CustomBTN:button];
        [button addTarget:self action:@selector(ClickDone) forControlEvents:UIControlEventTouchUpInside];
        [cell addSubview:button];
    }

2 个答案:

答案 0 :(得分:0)

您还没有为文本字段分配内存,这就是为什么您可以编辑但无法对其进行检索。只需编写txtMyName = [[UITextfield alloc]init];,一旦为文本字段分配内存,就可以将框架分配给文本字段,如txtMyName = [[UITextfield alloc]initWithFrame:CGRectMake(x,y,width,height)];,然后您将从文本字段中检索文本

答案 1 :(得分:0)

由于您已将文本字段添加到表格单元格中,因此您必须首先获取单元格,然后使用textfield标记来获取文本。

试试这个,

假设您有txtMyName.tag = 100

等文本字段的标记
-(void) ClickDone {
      NSIndexPath *indexPath = [[NSIndexPath alloc] indexPathForRow:0 inSection:0];
     UITableViewCell *cell = [tableView cellForRowAtIndexPath:lastIndexPath];
     UITextField *txtField = (UITextField *)[cell viewWithTag:100];
     _strFullName = txtField.text;
  }