0

それぞれが textField を含む複数のカスタム tableViewCells を含むテーブルがあります。私が発見したのは、1 つのテキスト フィールドにテキストを入力し、(キーボードの完了ボタンを押さずに) テキスト フィールドを画面外にスクロールして別のセルにテキストを入力すると、ビューが変更されるとアプリがクラッシュすることです。ビューの変更時にエラーを生成するには、現在の tableViewCell を画面外にスクロールする必要があるため、これはランドスケープ モードで最も頻繁に発生します。

私が信じているのは、セルが画面から消えると、セルとキーボードの間の接続が切断され、ビューが変更されると、表示されない (存在しない) テキストフィールドのキーボードを削除すると、クラッシュが発生するということです。

これは簡単な修正だと確信していますが、まだ見つけていません。

前もって感謝します。

4

1 に答える 1

0

次のようなことを試すことができます:

CustomUITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"Gioni"];

// If no cell is available, create a new one using the given identifier.
if (cell == nil) {
    cell = [[[CustomUITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"Gioni"] autorelease];
}
else
{
     [cell resignFirstResponderForObjectInCell];
}

このようにして、セル (特別な識別子を持つセル) がいつ再利用されるかを知ることができます...つまり、画面から外れていることを意味します。同様の別のものを作り直す前に、ファーストレスポンダーのステータスを辞任させることができます。

于 2011-06-29T14:12:08.717 に答える