Cocoaアプリケーションでテーブルビューを使用しています。ダブルクリックアクションを設定して、発生時に次の方法を実行します。
- (void)doubleClickInTable:(id)sender {
int rowIndex = [sender selectedRow];
if (rowIndex != -1) {
[userEditController setData:[[self users] objectAtIndex:rowIndex]];
[self showUserEditPanel];
}
}
ご覧のとおり、EditControllerは編集中のオブジェクトを受け取ります。このオブジェクトは、ソース配列のrowIndexにあるオブジェクトです。これはほとんどの場合非常にうまく機能しますが、ソートのテストを開始すると、間違ったオブジェクトが設定されます。これは、テーブル内でクリックされた行のインデックスが、行を移動するソートのためにソース配列とは異なるためです。
この問題を修正するにはどうすればよいですか?