0

一連の管理対象オブジェクトをリストする NSTableView を含むウィンドウが 1 つあります。これらのオブジェクトを選択して右クリックすると、編集ウィンドウが表示され、それらのオブジェクトのプロパティを編集できます (理論上)。

ウィンドウを表示するコードは次のとおりです。

EditObjController *editObjController = [[EditObjController alloc] init];

// This line has to be first or the properties of editObjController are all nil.
[[editObjController window] makeKeyAndOrderFront:self]; 
[editobjController.arrayController setManagedObjectContext:[[NSApp delegate] managedObjectContext]];

NSArray *selection = [_objects objectsAtIndexes: [_objectsTableView selectedRowIndexes]];
[editObjController.arrayController setContent: selection];

編集ウィンドウのペン先には NSArrayController があります。ウィンドウにはさまざまなテキストフィールドがあり、それらはすべてNSArrayController、コントローラーキー「選択」、モデルキーパス= nameoffieldにバインドされています。

配列コントローラは有効なオブジェクトです。エラーは報告されません。

ウィンドウが表示されたときに表示されるのは、すべてのテキストフィールドで「選択なし」だけです。私は何が欠けていますか?私は広範囲にグーグルで検索しましたが、Core Data と Bindings を使用して実際にレコードを編集する方法を説明する適切なチュートリアルが見つかりません。

4

1 に答える 1

2

NSTableView と編集ウィンドウは、同じアレイ コントローラーを共有する必要があります。

于 2010-11-14T08:20:56.427 に答える