NSTextField还是NSTextView?

Kub*_*der 29 macos cocoa text nstextfield nstextview

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

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

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

有了这样的要求,我使用NSTextField或NSTextView会更好吗?NSTextField是否足够好,或者NSTextView是否具有NSTextField不重要的东西?

Pet*_*sey 36

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

技术上是正确的,但您通常使用文本字段作为纯文本的值,通常只有一行.(处理多行,因为文本字段可以接受它们.如果没有其他内容,请以对您正在对文本执行的操作有意义的方式去除换行符.)

  • 它应该显示约1-4行的文本

NSTextView.

NSTextView.NSTextField中的支持链接很棘手.

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

要么适用于此.

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

没有NSScrollView的NSTextField或NSTextView.您可以通过从库中拖动文本视图然后从"布局"菜单中选择"Unembed Objects"来在IB中执行后者.

编辑文字,

要么适用于此.

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

是的,它应该.您应始终提供"复制"和只读服务等菜单项.任何一个控制都应该为你做这件事; 不要打这个.

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

要么适用于此.

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

有了这样的要求,我使用NSTextField或NSTextView会更好吗?

我会使用NSTextView.