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

时间:2016-07-06 20:08:29

标签: ios objective-c uicollectionview uitextfield

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

所以,我在[cell.textField becomeFirstResponder]中致电cellForItemAtIndexPath。但是,这仅在应用程序打开时才有效(包含uitextfield的单元格在应用程序启动时已经可见),如果我滚动离开单元格而不是向后滚动它,则文本字段不再成为第一响应者。

可能是什么问题?

编辑:我在调用UITextField之前以编程方式将集合视图滚动到包含becomeFirstResponder的单元格

2 个答案:

答案 0 :(得分:1)

在滚动完成之前,集合视图的滚动似乎使集合视图成为第一个响应者,因此我将textfield作为此委托方法中的第一个响应者:

-(void)scrollViewDidEndScrollingAnimation:(UIScrollView *)scrollView

答案 1 :(得分:0)

您应该将代码放在

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

根据class ref

运行
  

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