30

有人可以向我解释 NSTextField 和 NSTextView 之间的主要区别是什么?我知道 NSTextView 有更多的功能,通常用于较长的文本,而 NSTextField 通常用于单行纯文本字段,但如果我理解正确,NSTextField 也可以用于属性字符串和多行...

我特别需要的是一个控件,它可以在时间线视图中显示消息文本,就像在 Tweetie 或任何其他类似软件中一样。我唯一的要求是:

  • 它应该在大约 1-4 行中显示文本
  • 它应该能够在文本中显示链接(据我所知,这在两个控件中都应该很简单-http: //developer.apple.com/mac/library/qa/qa2006/qa1487.html
  • 它应该让用户选择并复制文本
  • 它不应该让用户滚动文本、编辑文本或显示通常出现在可编辑文本字段中的上下文菜单,甚至不应该在该字段中显示文本光标

有这样的要求,我是用 NSTextField 还是 NSTextView 更好?NSTextField 是否足够好,或者 NSTextView 有一些重要的东西 NSTextField 没有?

4

1 回答 1

39

有人可以向我解释 NSTextField 和 NSTextView 之间的主要区别是什么?我知道 NSTextView 有更多的功能,通常用于较长的文本,而 NSTextField 通常用于单行纯文本字段,但如果我理解正确,NSTextField 也可以用于属性字符串和多行...

从技术上讲是正确的,但您通常将文本字段用于纯文本且通常只有一行的值。(处理多行,因为文本字段可以接受它们。如果没有别的,请以对您正在处理文本的方式有意义的方式去除换行符。)

  • 它应该在大约 1-4 行中显示文本

NSTextView。

NSTextView。在 NSTextField 中支持链接很棘手。

  • 它应该让用户选择并复制文本

要么为此工作。

  • 它不应该让用户滚动文本,

没有 NSScrollView 的 NSTextField 或 NSTextView。您可以在 IB 中通过从库中拖动文本视图然后从布局菜单中选择“未嵌入对象”来执行后者。

编辑文本,

要么为此工作。

或显示通常出现在可编辑文本字段中的上下文菜单,

是的,它应该。您应该始终提供“复制”等菜单项和只读服务。任何一个控件都应该为您执行此操作;不要打这个。

它甚至不应该在该字段中显示文本光标

要么为此工作。

如果您启用选择(通常应该这样做),如果用户在该字段中单击,它们将显示一个光标。这是一项功能,因为它指示选择锚点在哪里用于 shift-⌘-箭头选择。

有这样的要求,我是用 NSTextField 还是 NSTextView 更好?

我会使用 NSTextView。

于 2010-03-08T02:36:01.850 回答