cocoa macos text nstextfield nstextview

cocoa - NSTextField o NSTextView?



macos (1)

¿Podría alguien explicarme cuáles son las principales diferencias entre NSTextField y NSTextView? Sé que NSTextView tiene más funciones y generalmente se usa para textos más largos, y NSTextField generalmente se usa para campos de texto plano de una línea, pero si entiendo correctamente, NSTextField también se puede usar con cadenas atribuidas y con múltiples líneas ...

Lo que necesito específicamente es un control que muestre el texto de los mensajes dentro de una línea de tiempo como en Tweetie o cualquier otro software similar. Los únicos requisitos que tengo son:

  • debería mostrar texto en aproximadamente 1-4 líneas
  • debería ser capaz de mostrar enlaces en el texto (como entiendo, esto debería ser simple en ambos controles - http://developer.apple.com/mac/library/qa/qa2006/qa1487.html )
  • debería permitirle al usuario seleccionar y copiar el texto
  • NO debe permitir al usuario desplazarse por el texto, editar el texto o mostrar el menú contextual que generalmente aparece en los campos de texto editables, ni siquiera debería mostrar un cursor de texto en este campo

Con tales requisitos, ¿es mejor para mí usar un NSTextField o NSTextView? ¿Es suficiente NSTextField o NSTextView tiene algo importante que NSTextField no tiene?


¿Podría alguien explicarme cuáles son las principales diferencias entre NSTextField y NSTextView? Sé que NSTextView tiene más funciones y generalmente se usa para textos más largos, y NSTextField generalmente se usa para campos de texto plano de una línea, pero si entiendo correctamente, NSTextField también se puede usar con cadenas atribuidas y con múltiples líneas ...

Técnicamente cierto, pero normalmente utiliza campos de texto para valores que son texto sin formato y generalmente solo una línea. (Maneje múltiples líneas, ya que un campo de texto puede aceptarlas. Si nada más, elimine los saltos de línea de una manera que tenga sentido para lo que está haciendo con el texto).

  • debería mostrar texto en aproximadamente 1-4 líneas

NSTextView.

NSTextView. El soporte de enlaces en un NSTextField es complicado.

  • debería permitirle al usuario seleccionar y copiar el texto

Cualquiera de los dos funcionará para esto.

  • NO debe permitir al usuario desplazarse por el texto,

NSTextField o NSTextView sin NSScrollView. Puede hacer esto último en IB arrastrando una vista de texto desde la Biblioteca y luego seleccionando "Objetos inconexos" en el menú Diseño.

editar el texto,

Cualquiera de los dos funcionará para esto.

o mostrar el menú contextual que generalmente aparece en los campos de texto editable,

Sí, debería. Siempre debe ofrecer elementos de menú como "Copiar" y servicios de solo lectura. O el control debería hacer esto por ti; no luches esto.

ni siquiera debería mostrar un cursor de texto en este campo

Cualquiera de los dos funcionará para esto.

Si deja seleccionada la opción (que generalmente debería), mostrará un cursor si el usuario hace clic en el campo. Esta es una característica, ya que indica dónde está el anclaje de selección para la selección de desplazamiento-⌘-flecha.

Con tales requisitos, ¿es mejor para mí usar un NSTextField o NSTextView?

Yo usaría NSTextView.