我应该在绑定之前取消绑定吗?

时间:2017-12-17 19:39:50

标签: objective-c cocoa cocoa-bindings

我想以编程方式绑定NSTextField并在运行时更改它。我有问题。在新绑定之前我需要解除绑定吗? 例如:

[_noteTextField bind:@"value" toObject:self withKeyPath:@"project.saveNote" options:nil];
[_noteTextField unbind:@"value"];
[_noteTextField bind:@"value" toObject:self withKeyPath:@"project.note" options:nil];

这是对的吗?或者也许我不需要解开

[_noteTextField bind:@"value" toObject:self withKeyPath:@"project.saveNote" options:nil];
[_noteTextField bind:@"value" toObject:self withKeyPath:@"project.note" options:nil];

1 个答案:

答案 0 :(得分:0)

有多个值绑定,特别是对于像enabled这样的布尔值。这些是通过更改绑定属性的键来实现的。即enabledenabled2,...因此,如果您使用相同的密钥两次,即使这种多值绑定也会删除现有的绑定。

但是,没有记录,是否删除了现有绑定,因此实现可以选择不同的行为。

为什么不显式删除现有绑定?这就是你想要做的。让代码明确说明,想要做什么是个好主意。