UITextField不会成为收集视图中的第一响应者

UITextField不会成为收集视图中的第一响应者

问题描述:

我的收藏视图单元格中有一个UITextField。一旦该单元在屏幕上,我希望它成为第一响应者。UITextField不会成为收集视图中的第一响应者

所以,我打电话给[cell.textField becomeFirstResponder]cellForItemAtIndexPath。然而,这只适用于应用程序打开时(包含uitextfield的单元格在应用程序启动时已经可见),如果我从单元格滚动并滚动回来,则文本字段不再成为第一响应者。

可能是什么问题?

编辑:我编程调用becomeFirstResponder

+0

您可以发布您代码在哪里滚动到特定的单元格? – WMios

+1

我用稍微不同的方法解决了它,查看我的答案! –

它似乎集合视图的滚动发集合查看第一个响应者,直到滚动完成的,所以我在此委托的方法让我的文本框的第一个响应者:

-(void)scrollViewDidEndScrollingAnimation:(UIScrollView *)scrollView 

之前滚动集合视图包含UITextField细胞你应该把代码放在

- (void)collectionView:(UICollectionView *)collectionView willDisplayCell:(UICollectionViewCell *)cell forItemAtIndexPath:(NSIndexPath *)indexPath 

功能根据class ref

告诉委托人指定的单元即将b e显示在集合视图中。

+0

谢谢,今晚会明确尝试!在那之前,你能告诉我为什么这个工作如果cellForItemAtIndexPath不起作用? –

+0

看起来好像这个函数在细胞即将被绘制之前被调用,而不仅仅是当它最初被绘制时它应该工作。 – WMios

+0

另外,请注意你的答案是UITableView,我正在使用UICollectionView。然而,自iOS8以来也有类似的方法: - ((void)collectionView:(UICollectionView *))CollectionView willDisplayCell:(UICollectionViewCell *)cell forItemAtIndexPath:(NSIndexPath *)indexPath' –