ios从uitableViewCell中的文本字段获取文本值
Posted
技术标签:
【中文标题】ios从uitableViewCell中的文本字段获取文本值【英文标题】:ios get text value from textfield in tableViewCell 【发布时间】:2015-10-30 11:00:03 【问题描述】:在我的 ViewController 中,我创建了一个名为 UITextField *txtMyName;
的文本字段
之后,我将 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];
【问题讨论】:
_strFullName = cell.txtMyName.text;做吧 表格视图中有多少个单元格?? 不!我不能调用 cell.txtMyName.text。因为,我不是在 TableViewCell 中创建的。 我在 myViewController 中创建,然后添加到单元格以显示在 tableView 中 你有什么按钮可以获取编辑后的文本吗?或者你必须在没有交互的情况下获得它? 【参考方案1】:由于您已经将文本字段添加到表格单元格中,因此您必须先获取单元格,然后使用文本字段的标签才能获取文本。
这样试试,
假设您有 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;
【讨论】:
成功了。谢谢。但是,当点击完成时,它会创建 UITextField,所以它会占用内存 如果是这样你可以马上得到这样的文字,_strFullName = ((UITextField *)[cell viewWithTag:100]).text
@iosDeveloper 因为我们还没有为cell
或txtField
创建任何alloc
,所以它不为它保存内存。只是我们正在使用 indexpath 和 tag 获取已经分配的对象。所以,它不会占用任何内存。
我明白了!谢谢。【参考方案2】:
您还没有为您的文本字段分配内存,这就是您能够编辑但无法检索它的原因。只需写 txtMyName = [[UITextfield alloc]init];
你可以像 txtMyName = [[UITextfield alloc]initWithFrame:CGRectMake(x,y,width,height)];
这样将框架分配给文本字段,一旦你将内存分配给你的文本字段,那么你将从文本字段中检索文本
【讨论】:
我已经为我的文本字段分配了内存和 setframe。 txtMyName = [[UITextField alloc]initWithFrame:CGRectMake(cell.frame.size.width - 100, 0, 300, 40)]; 这是我为 textField 分配内存和框架的方法。 [self setFrameTextField:cell];你可以在我的代码中看到。以上是关于ios从uitableViewCell中的文本字段获取文本值的主要内容,如果未能解决你的问题,请参考以下文章
如何从目标c中的uitableViewCell取回文本字段数据?
从 uitableviewcell 内的文本字段中关闭 iPad 上的键盘
是否有带有标签和文本字段的可重用 UITableViewCell?
滚动时自定义 UITableViewCell 中的 UITextFields 文本出现在其他单元格中