UItextField无法成为UICollectionView的reloadData之后的第一响应者

时间:2012-12-02 11:23:18

标签: uitextfield uicollectionview first-responder

我是stackoverflow和Objective c的新手,所以请事先原谅我:)

我有一个显示虚拟文件夹列表的UIcollectionView 单击“添加文件夹”时,单元格将添加到集合中。单元格里面有一个UITextField,我创建了FirstResponder,弹出虚拟键盘,用户可以编辑文件夹的名称。在我添加的每个文件夹上都能很好地工作。

问题是当用户点击文件夹时。

我将reloadData重新加载到CollectionView(因为我现在想要显示被点击的文件夹的内容),然后我添加的每个文件夹都不会弹出虚拟键盘,而UITextField不会成为第一响应者?

任何人都知道为什么会这样?

另一个有趣的事情是,当我点击集合(没有单元格的空白区域),然后尝试创建一个新文件夹后,键盘返回..

1 个答案:

答案 0 :(得分:1)

我的问题是我的UITextField是在单元格本身,以及UICollectionView使用可重用单元格的事实。所以,每次我给我一个不同的单元格(当它可用时是现有的单元格,当它可用时是新的单元格)并且无法找到发送我的becomeFirstRisponder的位置。我通过在创建时为每个单元格提供uniq标识符并在发送becomeFirstRisponder命令时查找正确的标识符来解决它。