虽然我已经搜索了很多有关Cocoa Bindings的信息,但我对自己得到的信息仍然感到相对不满意。看起来这个主题对很多人来说都有些棘手,很多人只是避免使用这种模式,我认为这种情况不应该发生。
当然,绑定有时可能过于复杂或设计过于繁琐...
然而,我有一个非常直接和具体的问题:如果我可以直接建立绑定,为什么还需要NSObjectController呢?
例如,下面的代码:
[controller bind:@"contentObject" toObject:self withKeyPath:@"numberOfPieSlices" options:nil];
[slicesTextField bind:@"value" toObject:controller withKeyPath:@"content" options:nil];
[stepperControl bind:@"value" toObject:controller withKeyPath:@"content" options:nil];
与其完全相同的功能:
[slicesTextField bind:@"value" toObject:self withKeyPath:@"numberOfPieSlices" options:nil];
[stepperControl bind:@"value" toObject:self withKeyPath:@"numberOfPieSlices" options:nil];
在我的情况中,我们谈论的是正在发生一切的类的属性,因此我猜想需要 NSObjectController 的原因可能是:
当控制器的键路径为 object 且需要将其他控件的绑定与其属性进行绑定,而不是像使用基本类型和其包装器一样绑定其值(在我的情况下,numberOfPiesSlices 是 NSInteger)时
或者当需要在一个对象内部之间以及外部其他对象之间进行绑定时
有人能够确认或者反驳吗?