2017-04-10 108 views
0

所以我有,我想隐藏取决于BOOL视图可可多值布尔绑定,使用逻辑或

我用可可绑定为此

[view bind:@"hidden" toObject:self withKeyPath:@"someBOOL" options:bindingOptions]; 

现在我希望我的另外一个问题是, BOOL也被绑定到视图。

所以,如果这些布尔值将的回归YES,我想view被隐藏

[view bind:@"hidden" toObject:self withKeyPath:@"someBOOL2" options:bindingOptions]; 

的问题是,它看起来像在默认情况下,有两个BOOL绑定到同一个视图默认为逻辑与操作,因此它并不重要,如果任一someBOOLsomeBOOL2评估为YES如果其他人不也计算为YES

所以没有任何人知道,如果有一种方法,使其所以这些纲领性布尔绑定使用逻辑OR运算符?

这是唯一的有关文件和资料,我可以找到: https://developer.apple.com/library/content/documentation/Cocoa/Reference/CocoaBindingsRef/Concepts/BindingTypes.html

多值绑定

多值绑定允许一个单一 结合创建多个绑定。使用第一个绑定创建绑定会自动导致显示第二个绑定,依此类推。

例如,如果绑定到启用的绑定,则会显示名为 的绑定enabled2。如果绑定enabled2,则该对象将显示 enabled3等等。然后将所有这些绑定值一起使用 以返回绑定的最终值。

多值绑定总是只读的。

有多种值绑定的四种变体。

多值布尔绑定多值布尔绑定是 用于确定对象是可编辑,隐藏或启用。通过形成逻辑AND 或者暴露的绑定的值的逻辑OR来导出结果的结果值。逻辑 使用的操作取决于特定的绑定。

+1

对于你已经显示的第二个绑定,你仍然使用“隐藏”的名字。 **取代**第一个绑定。如果你想使用多值绑定,第二个需要使用绑定名称“hidden2”。 –

+0

嗯,它是在文档中说的,没有仔细阅读。你知道是否可以在逻辑与/或之间切换吗?它说:“使用的逻辑操作取决于特定的绑定。”这使得它听起来像我无法控制它 –

+0

“如果对所有隐藏绑定的逻辑或操作导致布尔值为YES,则隐藏NSView。” [隐藏的NSView](https://developer.apple.com/library/content/documentation/Cocoa/Reference/CocoaBindingsRef/BindingsText/NSView.html#//apple_ref/doc/uid/NSView-SW3)。 – Willeke

回答

2

对于您已经显示的第二个绑定,您仍然使用名称“hidden”。这取代了第一个绑定。如果你想使用多值绑定,第二个需要使用绑定名称“hidden2”。

正如@Willeke所述,隐藏绑定对多值绑定使用逻辑OR。好东西就是你想要的,因为,不,你不能改变它。 :)