Don*_*urr 9 cocoa key-value-observing cocoa-bindings
我正在使用KVO来查看复选框,并根据复选框的状态启用或禁用详细信息输入区域.(即如果选中该复选框,则启用详细信息区域,否则不启用)类似于:
[self.detailInputArea bind:@"enabled" toObject:self withKeyPath:@"enabledCheckbox" options:nil];
Run Code Online (Sandbox Code Playgroud)
我的问题是,现在我想将其更改为设置detailInputArea的hidden属性,以显示/隐藏视图,具体取决于复选框的状态.问题是这需要逆逻辑.换句话说,设置enabled,true表示视图已启用(可以接受输入),而false表示不能.但是,使用hidden,true表示视图是隐藏的,否则为false.显然这不起作用,因为当选中复选框时,视图会隐藏自身(其enabled属性为true).
有什么方法可以根据它正在观看的属性的反转来改变这种绑定行为,和/或是否有更好的方法来完成我在这里尝试做的事情?
Jos*_*ell 15
是的,这是选项字典的一部分.键值绑定允许绑定值在设置之前通过a进行转换NSValueTransformer,您可以在绑定选项中指定转换器.
本NSValueTransformer类提供了一些默认情况下,命名为变压器.在这种情况下,你会感兴趣的NSNegateBooleanTransformerName.
因此,您想要的绑定将如下所示:
[self.detailInputArea bind:@"hidden"
toObject:self
withKeyPath:@"enabledCheckbox"
options:@{NSValueTransformerNameBindingOption : NSNegateBooleanTransformerName}];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1384 次 |
| 最近记录: |