Вкратце: я связываю NSTextField
с владельцем файла (контроллер вида) и путь ключа модели representedObject.firstName
, но редактирование текстового поля не изменяет firstName
.Почему NSViewController не является обязательным?
Подробнее. У меня есть простая программа, которая ничего не делает, кроме создания экземпляра Thing
(простой класс с некоторыми свойствами) и ThingViewController
. Контроллер имеет связанный с ним .xib
с простым пользовательским интерфейсом - пару текстовых полей для привязки к свойствам Thing
.
@interface Thing : NSObject
@property (nonatomic, strong) NSString *firstName;
@property (nonatomic, strong) NSString *lastName;
@property (nonatomic) BOOL someBool;
@end
И в приложение делегата ...
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
NSView *cv = self.window.contentView;
ThingViewController *vc = [[ThingViewController alloc]
initWithNibName:@"ThingViewController" bundle:nil];
theThing = [Thing new];
theThing.firstName = @"Rob";
vc.representedObject = theThing;
[cv addSubview:vc.view];
}
ThingViewController.xib
прост:
А вот привязка для этого первого текстового поля:
Когда я запускаю, текстовое поле показывает «Rob», поэтому оно работает в этом направлении, но затем, когда я редактирую текстовое поле, свойство firstName
theThing
не изменяется.
Что я делаю неправильно?
Редактировать: Вот ссылка на архивный файл проект для указанной выше коды: https://drive.google.com/file/d/0B2NHW8y0ZrBwWjNzbGszaDQzQ1U/edit?usp=sharing
Попробуйте «постоянно обновлять значение?». Был необходим для меня в основном контексте данных с полем токенов. Редактирование пользователем не было немедленно перенесено на модель. – stevesliva
Я пробовал, но не вижу изменений в поведении. –