UICollectionView не поддерживает ввод UITextfield - PullRequest
0 голосов
/ 18 мая 2018

Терпите меня, так как это трудный вопрос для описания.У меня есть два UICollectionViews: MainCollectionView и NestedCollectionView.MainCollectionViewCell содержит UILabel и NestedCollectionView.В свою очередь, NestedCollectionViewCell содержит либо UILabel, либо UITextfield.Отображается ли UILabel или UITextfield, зависит от содержимого NestedCollectionViewCell.

Моя проблема заключается в следующем: когда пользователь выбирает NestedCollectionViewCell, а для содержимого установлено значение UITextfield, появляется клавиатура для ввода данных пользователем.Это ожидаемо.

Однако, когда пользователь вводит некоторый текст, а затем прокручивает в другую ячейку в MainCollectionView, NestedCollectionView сбрасывается, а UITextfield.text устанавливается по умолчанию.Другими словами, введенный текст не сохраняется.

Любой совет, как я могу решить это?

1 Ответ

0 голосов
/ 18 мая 2018

Ваш введенный текст в UITextField потерян, потому что всякий раз, когда вы прокручиваете свой UITableView, он автоматически уничтожает ячейки, которые больше не видны, и это также требуется для лучшего управления памятью, в противном случае ваше приложение будет потреблять больше памяти.Поэтому, когда вы возвращаетесь к своей предыдущей ячейке, вы только что сгенерировали UITalbeViewCell.Таким образом, ваши данные будут потеряны, потому что вы не сохранили их.

Таким образом, в качестве решения, когда ваш textFieldDidEndEditing вызвал или когда вы уволили клавиатуру, сохраните ваши значения UITextField в некотором объекте и в вашем cellForRowAtIndexPath Метод проверки, если объект имеет значение, затем заполните его до UITextField.

Таким образом, вы всегда будете иметь ранее введенное значение, как есть.

...