7

我有一个 UICollectionView。每个单元格包含一个 UITextField。我想要一个显示完成时的回调,所以我可以查询一个模型对象,它的 textField 应该是 firstResponder,然后使它成为 firstResponder。我可以得到那个回调吗?还是有另一种自然的方式来实现这一点?

4

3 回答 3

10

如果您将layoutIfNeeded消息发送到您的集合视图,它将在返回之前更新其子项(根据需要添加和删除单元格)。因此,您可以使其同步更新,然后执行重新加载后的操作。

[myCollectionView layoutIfNeeded];
[self chooseFirstResponderFromCells:myCollectionView.visibleCells];
于 2013-06-25T06:33:02.820 回答
5

至于实际的回调方法,我认为没有一个用于加载集合视图的方法。我知道的唯一一个是performBatchUpdates:completion,这完全不相关。但是,根据我的经验,集合视图已加载并在viewDidAppear调用时准备就绪,因此我会将第一响应者设置在那里。

希望这可以帮助!

于 2013-06-25T04:30:10.617 回答
0

从未尝试过,但您可以通过输入代码来做到这一点

dequeueReusableCellWithReuseIdentifier:forIndexPath:

获取可见单元格的计数(可能是 [visibleCells count]),然后跟踪实际处理了多少个单元格,然后在显示完所有内容后进行回调。不过,您必须重置滚动之间的计数。

不干净,但应该工作。我不知道有什么方法可以得到回调。

于 2013-06-25T04:26:24.843 回答