我想绑定布尔值enabled
的财产NSTextField
到一个状态NSButton
。我已经尝试添加自定义NSValueTransformer
从而改变了状态NSButton
into NSNumber
。但是,在这种情况下,由于某种原因,文本字段始终被禁用。我的第二种方法:糟糕也失败了NSValueTransformer
不提供返回原语类型,例如BOOL
.
Example:
屏幕截图显示了一个示例,其中文本字段被禁用,因为复选框的状态为NSOnState
。我也想将标签绑定到这个状态。
另外,如果可以的话那就方便了在 Interface Builder 中设置“禁用文本”。在上面的示例中,我在关联的类中设置了文本。
Edit:
I set self.anonymousLoginCheckbox.state
as the 模型关键路径为了enabled帐户文本字段的属性。密码文本字段与此类似。然而,它确实not work.
Update:
我创建了一个GitHub 上提供的示例项目显示了实现 https://github.com/johnjohndoe/CustomTextField尼古拉斯·巴赫施密特 (Nicolas Bachschmidt) 亲切地描述了这一点。
NSButton
密钥不符合 KVO 标准state
。 Cocoa Bindings 要求被观察的对象在被观察的属性改变时发出通知。作为NSButton
's state
只是其单元格的包装state
, -[NSButton setState:]
当用户单击按钮时,不会调用方法(以及自动 KVO 通知)(但-[NSCell setState:]
是)。如果将模型关键路径设置为self.anonymousLoginCheckbox.cell.state
,它会起作用的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)