Пользовательские ячейки табличного представления с проблемами TextField - PullRequest
0 голосов
/ 15 октября 2010

Привет, так вот что я пытаюсь сделать. У меня есть представление таблицы, и я использую ячейки пользовательского представления таблицы с текстовыми полями. По сути, вы вводите текст в поля, и он сохраняется в контексте управляемого объекта. Я настроил табличное представление таким образом;

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

  //static NSString *CustCell=@"CustomCell";
 static NSString *CellIdentifier = @"Cell";
 CustomCell *cell = (CustomCell*) [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
 if (cell== nil) {
  cell= [[[CustomCell alloc] initWithFrame:CGRectZero reuseIdentifier:CellIdentifier] autorelease];
 } 



 switch (indexPath.row) {
   case 0:
    cell.primaryLabel.text = @"Name";
    cell.mainTextField.text=product.prodName;
    cell.selectionStyle = UITableViewCellSelectionStyleNone;
    break;

   case 1:
    cell.primaryLabel.text = @"Store";
    cell.mainTextField.text=product.store;
    cell.selectionStyle = UITableViewCellSelectionStyleNone;
    break;

   case 2:
    cell.primaryLabel.text=@"Amount";
    cell.mainTextField.text=product.amount;
    cell.mainTextField.keyboardType=UIKeyboardTypeNumberPad;
    cell.selectionStyle = UITableViewCellSelectionStyleNone;
    break;

   case 3:
    cell.primaryLabel.text=@"Measure";
    cell.detailLabel.text=product.measure;
    cell.mainTextField.hidden=YES;
    break;

   case 4:
    cell.primaryLabel.text=@"Package";
    cell.detailLabel.text=product.container;
    cell.mainTextField.hidden=YES;
    break;

   case 5:
    cell.primaryLabel.text=@"Aisle";
    cell.detailLabel.text=product.aisle;
    cell.mainTextField.hidden=YES;
    break;

   case 6:
    cell.primaryLabel.text=@"Note";
    cell.mainTextField.text=product.note;

   cell.selectionStyle = UITableViewCellSelectionStyleNone;
   break;

   default:
    break;
}
return cell;
} 

Так вот моя проблема. Во время выполнения я могу ввести текст в ячейки 1-3 без проблем, это спасает, и все счастливы. Но если я ввожу что-либо в ячейку 6, она возвращает Null для cell.nameTextField.text, и я не знаю почему.

Что я наделал. 1. Я попытался создать одну ячейку экземпляра в кончике и поместить ее в эту камеру. 2. Я попытался установить его в index.row 0 нового раздела. 3. Попытка добавления текстового поля в представление содержимого стандартной ячейки с этим индексом. 4. закомментировал метод сохранения для этой ячейки. 5. попытался создать отдельное textField и установить для cell.mainTextFiled значение Hidden. 6. Попытка создания таблицы View программно без использования пера. 7. Все это работало, когда я использовал единичные ячейки из пера для всех четырех этих ячеек. Если это ответ, пусть будет так. Но пользовательские ячейки табличного представления, созданные программно, гораздо более лаконичны и элегантны.

Добавить оскорбление в безумие. Если я переместлю эту ячейку на индекс 5 или ниже, все будет отлично. Любой индекс больше 5, и он взрывается.

Я изучил сеть и документы для разработчиков, а также 4 книги для разработчиков iPhone, которые у меня есть. Я здесь, потому что я исчерпал, что я могу сделать. Я уверен, что это что-то глупое, что я скучаю, но я сбит с толку. Любая помощь будет оценена. Конечная цель состоит в том, чтобы иметь записи во втором разделе, чтобы было больше места для записи. Да, я знаю, что есть и другие способы сделать это, но, похоже, это должно сработать, и я хотел бы знать, почему это не так. О, я должен упомянуть, что я только использовал симулятор iPhone. Я не пробовал работать на телефоне. Благодаря.

1 Ответ

0 голосов
/ 16 октября 2010

ОК, я идиот. После публикации этого я нашел ответ (конечно!) Проще говоря. Когда ячейка с текстовым полем прокручивается вне поля зрения, она удаляет эту ячейку. Когда ячейка появляется снова, она создается с блестящим чистым текстовым полем. Поэтому сейчас я ищу способы преодолеть это. Массивы приходят на ум. Я выложу то, что найду. Если у кого-то есть идеи по этой проблеме, я бы хотел их услышать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...