Я работаю над переносом некоторого древнего кода (эпоха 10.2) из NSCoding / plist-архивирования в Core Core. У меня есть NSOutlineView с пользовательским NSTextFieldCell. Контурное представление привязано к NSTreeController для предоставления данных.
Модель привязок выглядит так:
NSTreeController:
Контекст управляемого объекта -> Controller.managedObjectContext
NSTableColumn NSOutlineView
Значение -> Контроллер дерева :ограмма объектов: itemDictionary
NSOutlineView имеет собственный подкласс NSTextFieldCell, который добавляет изображение рядом с текстовым полем, поэтому я передаю ему значения NSManagedObject в виде NSMutableDictionary с именем itemDictionary, чтобы я мог получить и установить значения ключей title и isChecked.
Я сталкиваюсь с проблемами при обновлении значения текстового поля и передаче этого измененного значения обратно в мой экземпляр управляемого объекта. После того, как пользователь дважды щелкнет значение заголовка и отредактирует его, оно будет передано -(id)objectValue
, но я не уверен, что следующим шагом будет распространение обновления в мой экземпляр NSManagedObject. Код, который у меня есть для чтения и установки значений в моем подклассе NSTextFieldCell, приведен ниже:
- (void)setStringValue:(NSString *)aString {
[super setObjectValue:aString];
}
- (void)setObjectValue:(id <NSCopying>)anObject {
id cellValues = anObject;
[super setObjectValue:[cellValues valueForKey:@"title"]];
[self setCheckState:[[cellValues valueForKey:@"isChecked"] integerValue]];
}
- (id)objectValue {
return [super objectValue];
}