CollectionView滚动时的集合视图文本字段textFieldDidEndEditing

时间:2013-06-06 03:49:49

标签: ios uicollectionview

我有一个自定义布局的集合视图。它包含用户可以更新的文本字段,它将保存到数组中。文本字段占用整个集合视图单元格,基本上它看起来像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];
}
}

我试过没有运气,但我没有发布任何代码。

有关如何执行此操作的任何建议吗?

1 个答案:

答案 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:

     

使视图(或其中一个嵌入的文本字段)重新签名   第一响应者状态。