NSTextField 和 NSTextFieldCell 之间有什么区别,我要绑定到哪个?

What is the difference between NSTextField and NSTextFieldCell and to which do I bind?

更一般地说,control 类 和 control cell 类 有什么区别?按钮具有相同的层次结构,例如 - NSButton 和 NSButtonCell。

查看 NSTextField bindings and NSTextFieldCell bindings 的文档,它们都具有相同的“值”文档。为什么它们都有价值?一个可以没有另一个存在并且仍然显示一个值吗?

An NSString or NSNumber that is displayed as the content of the NSTextField.

An NSString or NSNumber that is displayed as the content of the NSTextFieldCell.

因此,当我将文本字段或任何其他控件拖到我的 UI 中时,我如何确定要实际绑定到层次结构中的哪些对象?

IB 中有许多更复杂的控件,它们在文档大纲中创建了复杂的层次结构,而且根据我的搜索,我无法找到解释我应该关注和使用哪些对象的文档绑定和连接条款。

我会满足于 NSTextField/NSTextFieldCell 的答案,但我真的很想知道如何辨别构成控件的所有内容之间的差异以及我在开发应用程序时应该关注的内容。

绑定到 NSTextField。 NSCells 的存在是为了帮助在屏幕上绘制东西,但在很大程度上是过去的遗留物,因为给每样东西提供自己的视图被认为是性能问题。 Apple 正在逐渐弃用它们。它们公开了许多相同的界面,但 NSTextfield 会在需要时将正确的信息正确地委托给它的单元格。如果您打算覆盖其外观,您实际上只需要更改单元格。

  1. 使用 NSTextField 更改文本颜色,设置默认文本字符串,设置字段背景。
  2. 使用 NSTextFieldCell 设置默认占位符文本。