gpt4 book ai didi

Cocoa:如何将 bool 属性绑定(bind)到 NSCellStateValue?

转载 作者:行者123 更新时间:2023-12-03 16:09:58 25 4
gpt4 key购买 nike

我想将 NSTextField 的 bool enabled 属性绑定(bind)到 NSButton 的状态。我已经尝试添加一个自定义 NSValueTransformer 来将 NSButton 的状态转换为 NSNumber。但是,在这种情况下,由于某种原因,文本字段始终被禁用。我的第二种方法:糟糕的是也失败了,因为 NSValueTransformer 不提供返回基元类型,例如 BOOL

示例:
该屏幕截图显示了一个示例,其中文本字段被禁用,因为复选框的状态为 NSOnState。我还想将标签绑定(bind)到这种状态。

Disabled text fields

此外,如果我可以在 Interface Builder 中设置“禁用文本”,那就太方便了。在上面的示例中,我在关联的类中设置了文本。

<小时/>

编辑:

我将 self.anonymousLoginCheckbox.state 设置为帐户文本字段的 enabled 属性的模型 key 路径。密码文本字段与此类似。但是,它不起作用

Interface Builder Binding

<小时/>

更新:

我创建了一个example project available on GitHub showing the implementation尼古拉斯·巴赫施密特 (Nicolas Bachschmidt) 亲切地描述了这一点。

最佳答案

NSButton 对于按键状态 不兼容 KVO。 Cocoa Bindings 要求被观察的对象在被观察的属性改变时发出通知。由于 NSButtonstate 只是其单元格 state 的包装器,-[NSButton setState:] 方法(当用户单击按钮时,不会调用自动 KVO 通知(但 -[NSCell setState:] 会调用)。如果您将模型 key 路径设置为 self.anonymousLoginCheckbox.cell.state,它将起作用。

关于Cocoa:如何将 bool 属性绑定(bind)到 NSCellStateValue?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11193804/

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