Как получить значение UITextField в пользовательской ячейке UITableView - PullRequest
2 голосов
/ 23 января 2012

Я новичок в разработке для 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 ]

6 голосов
/ 23 января 2012

Вам нужно сослаться на экземпляр вашего 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];
}
5 голосов
/ 10 марта 2014

Текстовое поле, переданное вашему делегату, является подпредставлением 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 голосов
/ 23 января 2012

Поищите в этой теме похожий вопрос

UITextField в справке UITableViewCell

Вам следует использовать один из делегированных методов текстового поля, чтобы заполнить соответствующую ячейку вашегомассив

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