Cocoa 多值布尔绑定,使用逻辑 OR



所以我有一个视图,我想根据 BOOL 隐藏

我通过可可绑定来做到这一点

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

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

因此,如果这些布尔值中的任何一个返回YES,我希望隐藏view

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

问题在于,默认情况下,将两个 BOOL 绑定到同一视图默认为逻辑 AND 操作,因此someBOOLsomeBOOL2评估是否YES

另一个没有计算结果并不重要YES

那么有没有人知道是否有办法使这些编程布尔绑定使用逻辑 OR 运算符?

这是我能找到的唯一相关文档和信息: https://developer.apple.com/library/content/documentation/Cocoa/Reference/CocoaBindingsRef/Concepts/BindingTypes.html

多值绑定

多值绑定允许为 单个绑定。使用第一个绑定创建绑定 自动导致公开第二个绑定,依此类推。

例如,如果绑定到已启用的绑定,则称为 已启用 2 已公开。如果绑定启用 2,则对象将公开 已启用 3,依此类推。然后将所有这些绑定值一起使用 返回绑定的最终值。

多值绑定始终是只读的。

多值绑定有四种变体。

多值布尔绑定 多值布尔绑定是 用于确定对象是可编辑、隐藏还是启用。这 绑定的结果值是通过形成逻辑 AND 派生的 或公开绑定的值的逻辑 OR。逻辑 使用的操作取决于特定的绑定。

对于您显示的第二个绑定,您仍然使用名称"隐藏"。这将替换第一个绑定。如果要使用多值绑定,第二个需要使用绑定名称"hidden2"。

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

最新更新