Cocoa:如何将布尔属性绑定到NSCellStateValue?

Cocoa:如何将布尔属性绑定到NSCellStateValue?,第1张

概述我想将NSTextField的布尔启用属性绑定到NSButton的状态.我已经尝试添加一个自定义的NSValueTransformer,它将NSButton的状态转换为NSNumber.但是,在该场景中,由于某种原因,文本字段始终处于禁用状态.我的第二种方法:由于NSValueTransformer不提供返回原语类型(如BOOL),因此也会失败. 例: 屏幕截图显示了禁用文本字段的示例,因为该复选 我想将NSTextFIEld的布尔启用属性绑定到NSbutton的状态.我已经尝试添加一个自定义的NSValuetransformer,它将NSbutton的状态转换为NSNumber.但是,在该场景中,由于某种原因,文本字段始终处于禁用状态.我的第二种方法:由于NSValuetransformer不提供返回原语类型(如BOol),因此也会失败.

例:
屏幕截图显示了禁用文本字段的示例,因为该复选框具有状态NSOnState.我也想将标签绑定到这个状态.

此外,如果我可以在Interface Builder中设置“禁用文本”,那将会很方便.在上面的例子中,我在关联的类中设置了文本.

编辑:

我将self.anonymousLoginCheckBox.state设置为帐户文本字段的enabled属性的Model Key Path.类似于密码文本字段.但是,它不起作用.

更新:

我创建了一个由Nicolas BachschmIDt描述的example project available on GitHub showing the implementation.

解决方法 对于关键状态,NSbutton不符合KVO标准. Cocoa Bindings要求观察对象在观察到的属性发生变化时发出通知.由于NSbutton的状态只是其单元状态的包装器,因此当用户单击按钮(但是 – [NSCell setState:] is)时,不会调用[NSbutton setState:]方法(以及自动KVO通知).如果将模型键路径设置为self.anonymousLoginCheckBox.cell.state,它将起作用. 总结

以上是内存溢出为你收集整理的Cocoa:如何将布尔属性绑定到NSCellStateValue?全部内容,希望文章能够帮你解决Cocoa:如何将布尔属性绑定到NSCellStateValue?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1015380.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-22
下一篇 2022-05-22

发表评论

登录后才能评论

评论列表(0条)

保存