ios从tableViewCell中的textfield获取文本值
在我的ViewController中,我创建了一个名为ios从tableViewCell中的textfield获取文本值,ios,objective-c,uitableview,uitextfield,Ios,Objective C,Uitableview,Uitextfield,在我的ViewController中,我创建了一个名为UITextField*txtMyName 之后,我被添加到tableViewCell[cell addSubview:txtMyName]的文本字段中 我可以编辑文本字段中的文本,但当我从文本字段\u strFullName=txtMyName.text获取文本时 但是,它只能获取空值 我怎样才能解决这个问题 *****编辑**** if (indexPath.row == 0) { [self setFrameTextFi
UITextField*txtMyName代码>
之后,我被添加到tableViewCell[cell addSubview:txtMyName]的文本字段中代码>
我可以编辑文本字段中的文本,但当我从文本字段\u 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];
}
您还没有为文本字段分配内存,这就是您可以编辑但无法检索文本字段的原因。只需编写txtMyName=[[UITextfield alloc]init]代码>您可以将框架分配给文本字段,如txtMyName=[[UITextfield alloc]initWithFrame:CGRectMake(x,y,width,height)]代码>一旦您将内存分配给文本字段,您将从文本字段中检索文本您尚未将内存分配给文本字段,这就是您可以编辑但无法检索文本字段的原因。只需编写txtMyName=[[UITextfield alloc]init]代码>您可以将框架分配给文本字段,如txtMyName=[[UITextfield alloc]initWithFrame:CGRectMake(x,y,width,height)]代码>一旦您将内存分配给textfield,您将从textfield中检索文本因为您已将textfield添加到表格单元格中,您必须先获取单元格,然后使用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;
}
由于已经将textfield添加到表单元格中,因此必须先获取单元格,然后使用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;
}
_strFullName=cell.txtMyName.text;是否在表视图中有多少单元格?否!我无法调用cell.txtMyName.text。因为,我不是在TableViewCell中创建的。我是在myViewController中创建的,之后,我添加到单元格以在TableView中显示编辑后的文本,是否有任何按钮?或者您必须在没有交互的情况下获取它?\u strFullName=cell.txtMyName.text;是否在表视图中有多少单元格?否!我无法调用cell.txtMyName.text。因为,我不是在TableViewCell中创建的。我是在myViewController中创建的,之后,我添加到单元格以在TableView中显示编辑后的文本,是否有任何按钮?或者您必须在没有交互的情况下获取它?我必须将内存和setframe分配给我的textfield.txtMyName=[[UITextField alloc]initWithFrame:CGRectMake(cell.frame.size.width-100,0300,40)];这是我调用的为textField分配内存和帧的方法。[self-setFrameTextField:单元格];您可以在我的代码中看到。我已将内存和setframe分配给我的textfield.txtMyName=[[UITextField alloc]initWithFrame:CGRectMake(cell.frame.size.width-100,0,300,40)];这是我调用的为textField分配内存和帧的方法。[self-setFrameTextField:单元格];你可以在我的代码中看到,它是有效的。谢谢但是,当单击“完成”时,它将创建UITextField,因此需要内存。如果您可以直接获得这样的文本,\u strFullName=((UITextField*)[cell viewWithTag:100])。文本
@IOSDeveloper因为我们没有为单元格
或txtField
创建任何alloc
,因此它没有内存。我们只是使用indexpath和标记获取已经分配的对象。所以,这不需要任何记忆,我明白!谢谢,成功了。谢谢但是,当单击“完成”时,它将创建UITextField,因此需要内存。如果您可以直接获得这样的文本,\u strFullName=((UITextField*)[cell viewWithTag:100])。文本
@IOSDeveloper因为我们没有为单元格
或txtField
创建任何alloc
,因此它没有内存。我们只是使用indexpath和标记获取已经分配的对象。所以,这不需要任何记忆,我明白!谢谢