如何在自定义 UITableView 单元格上获取 UITextField 值

Posted

技术标签:

【中文标题】如何在自定义 UITableView 单元格上获取 UITextField 值【英文标题】:How to get UITextField value on custom UITableView cell 【发布时间】:2012-01-22 23:44:14 【问题描述】:

我是 ios 开发新手,我正在尝试开发我的第一个应用程序。

所以我的问题是...我有一个带有自定义单元格的 UITableView,每个单元格都包含一个 UITextField。当我按下按钮时,我想将每个 UITextField 值放在 NSMutableArray 中。

我想我必须做类似的事情,但我不确定:

NSMutableArray *playerNameArray = [[NSMutableArray alloc] init];

for (int i=0; i < nbPlayers; i++) //nbPlayers is the number of rows in the UITableView
    NSString *playerName =UITextField.text;
    [playerNameArray addObject:[NSString stringWithFormat: @"%@", playerName]];

如果有人可以帮助我.... :) 谢谢

【问题讨论】:

【参考方案1】:

您需要引用您的UITextField 的实例,您在那里所做的是尝试在UITextField 类上调用text。这样的事情可能会解决您的问题:

NSMutableArray *playerNameArray = [[NSMutableArray alloc] init];

for (int i=0; i < nbPlayers; i++) //nbPlayers is the number of rows in the UITableView

    MyTableViewCellSubclass *theCell = (id)[self.tableView cellForRowAtIndexPath:[NSIndexPath indexPathForRow:i inSection:0]];
    UITextField *cellTextField = [theCell textField];

    NSString *playerName = [cellTextField text];
    [playerNameArray addObject:playerName];

【讨论】:

只要您在自定义 TableViewCell 子类中将 UITextField 声明为名为 textField 的属性,此方法就可以工作。【参考方案2】:

传递给您的委托的文本字段是单元格内容视图的子视图。

- (BOOL)textFieldShouldEndEditing:(UITextField *)textField

      UITableViewCell *cell = (UITableViewCell*) textField.superview.superview;
      NSIndexPath *txtIndPath = [self.tblPendingDeliveryData indexPathForCell:cell];
    
      write you code here.....like
      if(textField.tag == 1)
      
          NSMutableDictionary *dict = [self.arrPendingDeliveryData objectAtIndex:txtIndPath.row];
          [dict setObject:textField.text forKey:@"ReOrder"];
      


在 txtIndPath 中,您将获得活动文本字段的索引路径。为 textfield 标签属性分配必要的值。对我来说效果很好。

【讨论】:

【参考方案3】:

查看此主题以了解类似问题

UITextField in UITableViewCell Help

您应该使用其中一种文本字段委托方法来填充数组的正确单元格

 - (void)textFieldDidEndEditing:(UITextField *)textField
   

【讨论】:

以上是关于如何在自定义 UITableView 单元格上获取 UITextField 值的主要内容,如果未能解决你的问题,请参考以下文章

UItableview 在自定义单元格上使用带有提示的警报视图重新加载数据的问题

如何在自定义单元格的 initWithStyle: 方法中获取 UITableView 的宽高?

在自定义 tableView 单元格上使用 contentView 属性(作为标题传递)如何防止它使自定义属性无效?

未在自定义 UISearchBar 中获取过滤器数据

如何在自定义 UITableView 中获取文本字段

iOS Swift:在自定义 UITableView 单元格中更新二维数组时获取重复值