2010-11-14 4 views
0

У меня есть одно окно, содержащее список NSTableView, содержащий список управляемых объектов. Я могу щелкнуть правой кнопкой мыши по выделенным объектам и открыть окно редактирования для редактирования свойств этих объектов (теоретически).NSArrayController + Core Data + Bindings

Вот мой код, чтобы открыть окно:

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, клавиша выбора ключа контроллера, с ключом модели path = nameoffield.

Контроллер массива является допустимым объектом. Ошибок не сообщается.

Все, что появляется, когда появляется окно «Нет выбора» во всех текстовых полях. Что мне не хватает? Я широко использую googled, и я не могу найти достойный учебник, который объясняет, как фактически редактировать записи с использованием Core Data и Bindings.

+0

Markdown tip: \ '\' предназначен для форматирования встроенного кода. Для кодовых блоков вам нужно использовать четыре пробела или вкладку в начале каждой строки. –

ответ

2

В вашем NSTableView и окне редактирования должен использоваться один и тот же контроллер массива.

+0

И как только вы это сделаете, нет причин спрашивать мнение, что выбрано в нем. Контроллер массива уже знает, что выбрано, и если вы хотите поделиться этим знанием, привяжите свойство 'selectedObjectIndexes' контроллера массива к собственному свойству, удерживая указатель на NSIndexSet. –

Смежные вопросы