1

カスタムNSCell(実際にはサブクラス化NSTextFieldCell) があり、これはスタンドアロン エディターとNSTableColumn(を介して Core Data にバインドNSArrayController) の両方で使用されます。ユーザーが値を変更すると、値-[NSCell setObjectValue:]を更新するために呼び出します (これは ですNSNumber)。これは、スタンドアロン エディターで機能します。完了したら、バインドを手動で更新するためです。

[self setObjectValue:[NSNumber numberWithInt:newValue]];

そのステップ (バインドされたフィールドの更新) は、セルがセルにある場合に欠落していNSTableViewます - ユーザーの編集中に更新された値が表示されます (マウス トラッキングを使用)。

はのNSTableColumnキーにバインドされています-[NSArrayController arrangedObjects]。私が見逃している「commitEditing」または「updateBinding」への呼び出しのようなものはありますか? NSCellまたはのドキュメントに便利な関数が見つかりませんでしたNSTableView

4

1 に答える 1

1

これを解決するため-tableView:setObjectValue:forTableColumn:row:に、NSArrayControllerサブクラスに実装しました。Row 引数からサブクラスのインスタンスを取得NSManagedObjectし、ObjectValue 引数から新しいモデルを手動で割り当てます。テキストセルがこれを自動的に行うときに、なぜこれが必要なのかはまだわかりませんが、機能します。

于 2011-03-17T20:24:14.277 に答える