カスタム レイアウトのコレクション ビューがあります。ユーザーが更新できるテキスト フィールドが含まれており、配列に保存されます。テキスト フィールドはコレクション ビュー セル全体を占め、基本的には Microsoft Excel などのように表示され、水平および垂直にスクロールします。
問題は、テキスト フィールドに数値を入力し、Return キーを押さずにコレクション ビューをスクロールすると、セルがデキューされ、インデックス パスが null になることです。
コレクション ビューがスクロールされた場合、テキスト フィールドの編集を終了したいと思います。
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];
}
}
運が悪かったので、試したコードを投稿しませんでした。
これを行う方法に関する提案はありますか?