UICollectionView 不保持 UITextfield 输入
UICollectionView Not Keeping UITextfield Input
请耐心等待,因为这是一个很难描述的问题。我有两个 UICollectionViews
:MainCollectionView
和 NestedCollectionView
。 MainCollectionViewCell
包含 UILabel
和 NestedCollectionView
。反过来,NestedCollectionViewCell
持有 UILabel
或 UITextfield
。显示 UILabel
还是 UITextfield
取决于 NestedCollectionViewCell
的内容。
我的问题如下:当用户选择 NestedCollectionViewCell
并且内容设置为显示 UITextfield
时,会出现一个用于用户输入的键盘。这是预期的。
但是,当用户输入一些文本然后滚动到 MainCollectionView
中的另一个单元格时,NestedCollectionView
会重置并且 UITextfield.text
会设置为默认值。换句话说,不保留输入的文本。
有什么建议可以解决这个问题吗?
您在 UITextField
中输入的文本丢失了,因为每当您滚动 UITableView
它会自动销毁不再可见的单元格,这也是更好的内存管理所必需的,否则您的应用程序将消耗更多内存。所以当你回到你之前的单元格时,你已经新生成了 UITalbeViewCell
。所以你的数据丢失了,因为你没有持久化。
因此,作为解决方案,无论何时调用 textFieldDidEndEditing
或关闭键盘,都会将 UITextField
值存储到某个对象中,并在 cellForRowAtIndexPath
方法中检查对象是否具有值,然后填充它到你的 UITextField
.
通过这种方式,您始终可以保留之前输入的值。
请耐心等待,因为这是一个很难描述的问题。我有两个 UICollectionViews
:MainCollectionView
和 NestedCollectionView
。 MainCollectionViewCell
包含 UILabel
和 NestedCollectionView
。反过来,NestedCollectionViewCell
持有 UILabel
或 UITextfield
。显示 UILabel
还是 UITextfield
取决于 NestedCollectionViewCell
的内容。
我的问题如下:当用户选择 NestedCollectionViewCell
并且内容设置为显示 UITextfield
时,会出现一个用于用户输入的键盘。这是预期的。
但是,当用户输入一些文本然后滚动到 MainCollectionView
中的另一个单元格时,NestedCollectionView
会重置并且 UITextfield.text
会设置为默认值。换句话说,不保留输入的文本。
有什么建议可以解决这个问题吗?
您在 UITextField
中输入的文本丢失了,因为每当您滚动 UITableView
它会自动销毁不再可见的单元格,这也是更好的内存管理所必需的,否则您的应用程序将消耗更多内存。所以当你回到你之前的单元格时,你已经新生成了 UITalbeViewCell
。所以你的数据丢失了,因为你没有持久化。
因此,作为解决方案,无论何时调用 textFieldDidEndEditing
或关闭键盘,都会将 UITextField
值存储到某个对象中,并在 cellForRowAtIndexPath
方法中检查对象是否具有值,然后填充它到你的 UITextField
.
通过这种方式,您始终可以保留之前输入的值。