有人可以向我解释NSTextField和NSTextView之间的主要区别是什么?我知道NSTextView有更多的功能,通常用于更长的文本,NSTextField通常用于单行纯文本字段,但如果我理解正确,NSTextField也可以用于属性字符串和多行... < / p>
我特别需要的是一个控件,它可以在Tweetie或任何其他类似软件中的时间线视图中显示消息文本。我唯一的要求是:
有了这样的要求,我使用NSTextField或NSTextView会更好吗? NSTextField是否足够好,或者NSTextView是否具有NSTextField不重要的东西?
答案 0 :(得分:36)
有人可以向我解释NSTextField和NSTextView之间的主要区别是什么?我知道NSTextView有更多的功能,通常用于更长的文本,NSTextField通常用于单行纯文本字段,但如果我理解正确,NSTextField也可以用于属性字符串和多行... < / p>
技术上是正确的,但您通常将文本字段用于纯文本的值,通常只使用一行。 (处理多行,因为文本字段可以接受它们。如果没有其他内容,请以对您正在对文本执行的操作有意义的方式去除换行符。)
- 它应该以大约1-4行显示文字
NSTextView。
- 它应该能够在文本中显示链接(据我所知,这在两个控件中都应该很简单 - http://developer.apple.com/mac/library/qa/qa2006/qa1487.html)
NSTextView。在NSTextField中支持链接很棘手。
- 应该让用户选择并复制文本
要么适用于此。
- 不应让用户滚动文字
NSTextField或没有NSScrollView的NSTextView。您可以通过从库中拖动文本视图然后从布局菜单中选择“Unembed Objects”来在IB中执行后者。
编辑文字,
要么适用于此。
或显示通常出现在可编辑文本字段中的上下文菜单
是的,它应该。您应始终提供“复制”和只读服务等菜单项。任何一个控制都应该为你做这件事;不要打这个。
它甚至不应该在这个字段中显示文本光标
要么适用于此。
如果您启用选择(通常应该这样做),如果用户在字段中单击,它们将显示光标。这是一项功能,因为它指示选择锚点用于shift-⌘-arrow选择的位置。
有了这样的要求,我使用NSTextField或NSTextView会更好吗?
我会使用NSTextView。