【问题标题】:Binding to NSTextField works; binding to NSTextView doesn't?绑定到 NSTextField 有效;绑定到 NSTextView 没有?
【发布时间】:2012-08-05 15:08:45
【问题描述】:

我有一个简单的主从项目,其中包含一个类实例数组、一个提供特定类实例选择的数组控制器,以及一个显示数组和选择的 NSTableView。我的类有一个 NSString 属性,当我将它绑定到 NSTextField 时,一切正常。

但是,当我将相同的属性绑定到 NSTextView 的 Value Path 字段时,它的行为非常不稳定:

  • 在 NSTableView 中的条目中进行选择不会导致 NSTextView 发生变化,即使所选对象具有不同的绑定属性值。

  • 在 NSTextView 中输入的任何内容都不会复制到所选内容的属性中。

  • 绑定的唯一明显效果是清除 NSTableView 中的选择(例如,单击所有条目下方)会导致 NSTextView 的内容消失。

有什么想法吗?

【问题讨论】:

  • 我已经在您上次发布的问题中回答了这个问题。如果您需要进一步澄清,您应该对该答案发表评论,而不是重新发布。我在回答中使用了属性字符串绑定——如果你想使用值绑定(对于纯字符串),你需要在绑定中的选项出现之前取消选中 IB 中的富文本选项。

标签: cocoa cocoa-bindings nstextview


【解决方案1】:

valuePath 绑定用于文件路径。值绑定用于字符串;还有数据(RTF/RTFD)和属性字符串绑定。

【讨论】:

  • 好的,我知道我不应该使用 valuePath。但是,NSTextView 在绑定检查器中没有值绑定。它确实有一个数据绑定。当我将它绑定到 NSString 时,我的应用程序立即抛出异常——大概是因为 NSTextView 想要在绑定属性中存储 RTF 样式的格式数据,而 NSString 不能胜任这项任务。我将类的绑定属性更改为 NSData,现在它工作正常。感谢您的帮助。
  • @DavidStein :如果你想访问value 绑定,你必须为你的NSTextView 设置取消选择RichText 选项。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-16
  • 2012-09-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多