¿NSTextField o NSTextView?


¿Podría alguien explicarme cuáles son las principales diferencias entre NSTextField y NSTextView? Sé que NSTextView tiene más características y generalmente se usa para textos más largos, y NSTextField se usa generalmente 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 vista de línea de tiempo como en Tweetie o cualquier otra 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 (según entiendo, esto debería ser simple en ambos controles - http://developer.apple.com/mac/library/qa/qa2006/qa1487.html )
  • debe permitir 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, se 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 NSTextField lo suficientemente bueno, o NSTextView tiene algo importante que NSTextField no tiene?

Author: Kuba Suder, 2010-03-08

1 answers

¿Podría alguien explicarme cuáles son las principales diferencias entre NSTextField y NSTextView? Sé que NSTextView tiene más características y generalmente se usa para textos más largos, y NSTextField se usa generalmente 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 es cierto, pero normalmente se usan campos de texto para valores que son texto plano y normalmente solo una línea. (Manejar múltiples líneas, ya que un campo de texto puede aceptarlas. Si nada más, quita los saltos de línea de una manera que tenga sentido para lo que estás haciendo con el texto.)

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

NSTextView.

NSTextView. Soportar enlaces en un campo NSTextField es complicado.

  • debe permitir al usuario seleccionar y copiar el texto

Cualquiera funcionará para esto.

  • no debe permitir que el usuario desplace el texto,

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

Editar el texto,

Cualquiera funcionará para esto.

O mostrar el menú contextual que suele aparecer en campos de texto editables,

Sí, debería. Siempre debe ofrecer elementos de menú como" Copiar " y servicios de solo lectura. Cualquiera de los controles debería hacer esto por ti; no luches contra esto.

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

Cualquiera funcionará para esto.

Si deja la selección habilitada (lo 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 ancla de selección para la selección shift-⌘-arrow.

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

Usaría NSTextView.

 35
Author: Peter Hosey,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-03-08 02:36:01