我有一个自定义布局的集合视图。它包含用户可以更新的文本字段,它将保存到数组中。文本字段占用整个集合视图单元格,基本上它看起来像Microsoft Excel等,并且水平和垂直滚动。
问题是,如果在文本字段中输入数字并滚动集合视图而不点击返回,则单元格将出列,索引路径将变为空。
如果滚动集合视图,我希望文本字段结束编辑。
这是我用于textFieldDidEndEditing的代码。
- (void)textFieldDidEndEditing:(UITextField *)textField {
UICollectionViewCell *selectedCell = (UICollectionViewCell *)[[textField superview] superview];
UICollectionView *collectionViewForSelection = (UICollectionView *)[selectedCell superview];
NSIndexPath *textFieldIndexPath = [collectionViewForSelection indexPathForCell:selectedCell];
if (textFieldIndexPath != NULL) {
[[_collectionArray objectAtIndex:textFieldIndexPath.section] replaceObjectAtIndex:textFieldIndexPath.row withObject:textField.text];
[self saveArray];
}
}
我试过没有运气,但我没有发布任何代码。
有关如何执行此操作的任何建议吗?
答案 0 :(得分:0)
UICollectionView是UIScrollView的子类,因此您可以尝试在委托scrollViewDidScroll中调用活动文本字段的resignFirstResponder:
- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
//resign the first responder of the active text field
[self.view endEditing:YES];
}
由于视图中有很多文本字段,您可以在视图中调用endEditing:
<强> endEditing:强>
使视图(或其中一个嵌入的文本字段)重新签名 第一响应者状态。