gpt4 book ai didi

cocoa - 使用 KVO 绑定(bind)到 bool 属性的负数

转载 作者:行者123 更新时间:2023-12-03 16:05:04 24 4
gpt4 key购买 nike

我正在使用 KVO 来监视复选框,并根据复选框的状态启用或禁用详细信息输入区域。 (即,如果选中该复选框,则启用详细信息区域,否则不会)类似:

[self.detailInputArea bind:@"enabled" toObject:self withKeyPath:@"enabledCheckbox" options:nil];

我的问题是,现在我想更改此设置以设置 detailInputAreahidden 属性,以根据复选框的状态显示/隐藏 View 。问题是这需要逆逻辑。换句话说,当设置其 enabled 时,true 表示 View 已启用(可以接受输入),而 false 表示不能。但是,对于 hidden,true 表示 View 被隐藏,否则为 false。显然这是行不通的,因为当选中复选框时 View 会隐藏自身(其 enabled 属性为 true)。

有什么方法可以更改此绑定(bind),使其根据其正在监视的属性的相反进行操作,和/或是否有更好的方法来完成我在这里尝试做的事情?

最佳答案

是的,这是选项字典的一部分。键值绑定(bind)允许在设置之前通过 NSValueTransformer 转换绑定(bind)值,并且您可以在绑定(bind)的选项中指定转换器。

NSValueTransformer 类提供 some default, named transformers 。在本例中,您会对 NSNegateBooleanTransformerName 感兴趣。

因此您想要的绑定(bind)将如下所示:

[self.detailInputArea bind:@"hidden" 
toObject:self
withKeyPath:@"enabledCheckbox"
options:@{NSValueTransformerNameBindingOption : NSNegateBooleanTransformerName}];

关于cocoa - 使用 KVO 绑定(bind)到 bool 属性的负数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21245387/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com