0
我配置的綁定是這樣的:爲什麼NSObjectController不更新它綁定的模型屬性?
@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」,然後我將其更改爲「世界」並回車。然而,只有對象控制器的內容更新:
[controller.content isEqualToString:@"World"]; // YES
[self.name isEqualToString:@"World"]; // NO — WHY?
[self.name isEqualToString:@"Hello"]; // YES
那麼,如何配置NSObjectController
更新其綁定到本地屬性?
如果不是綁定自己,而是initWithContent:self? –
我認爲這會導致保留週期,但解決方案非常接近。你能否確認我的回答?非常感謝,你真的幫助了! – Stream