Вкратце: я привязываю NSTextField
к владельцу файла (контроллеру представления) и пути к ключу модели representedObject.firstName
, но редактирование текстового поля не меняет firstName
.
Вот более подробная информация. У меня есть простая программа, которая ничего не делает, кроме как создает экземпляр 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
прост:
А вот привязка для этого первого текстового поля:
Когда я запускаю, в текстовом поле отображается «Роб», поэтому он работает в этом направлении, но затем, когда я редактирую текстовое поле, свойство firstName
для theThing
не изменяется.
Что я делаю неправильно?
Изменить. Вот ссылка на заархивированный файл проекта для приведенного выше кода: https://drive.google.com/file/d/0B2NHW8y0ZrBwWjNzbGszaDQzQ1U/edit?usp=sharing