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

时间:2012-01-22 23:44:15

标签: ios uitableview nsmutablearray uitextfield

我是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]];
}

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

3 个答案:

答案 0 :(得分:6)

您需要引用UITextField的实例,您正在尝试在text课程上调用UITextField。这样的事情可能会解决你的问题:

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];
}

答案 1 :(得分:5)

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

- (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标签属性分配必要的值。 最适合我,希望它也会帮助你。

答案 2 :(得分:2)

请查看此主题以获取类似问题

UITextField in UITableViewCell Help

您应该使用textfield委托方法之一来填充数组的正确单元格

 - (void)textFieldDidEndEditing:(UITextField *)textField{
   }