繁体   English   中英

为什么NSObjectController不更新绑定到的模型属性?

[英]Why NSObjectController does not update the model property it is bound to?

我这样配置绑定:

@property (nonatomic, copy) NSString *name;
@property (nonatomic, strong) NSObjectController *controller;

...

self.controller = [[NSObjectController alloc] initWithContent:nil];
[self.controller bind:NSContentObjectBinding toObject:self
          withKeyPath:@"name" options:nil];
[self.controller addObject:@"Hello"];

...

NSTextField *textField = [NSTextField textFieldWithString:nil];
[textField bind:NSValueBinding toObject:self.controller
    withKeyPath:@"content" options:nil];

文本字段在启动后显示字符串“ Hello”,然后将其更改为“ World”并单击Return。 但是,仅对象控制器的内容被更新:

[controller.content isEqualToString:@"World"]; // YES
         [self.name isEqualToString:@"World"]; // NO — WHY?
         [self.name isEqualToString:@"Hello"]; // YES

那么,如何配置NSObjectController来更新绑定到的本地属性?

解决了! 感谢Jacob Gorban:

self.name = @"Hello";
self.controller = [[NSObjectController alloc] initWithContent:nil];
[self.controller bind:NSContentObjectBinding toObject:self
          withKeyPath:@"self" options:nil];

...

NSTextField *textField = [NSTextField textFieldWithString:nil];
[textField bind:NSValueBinding toObject:self.controller
    withKeyPath:@"selection.name" options:nil];

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM