2010-02-25 15 views
5

Puedo trabajar con NSTokenField, es fácil de usar ... pero quiero sus sugerencias sobre cómo puedo personalizarlo tal como está en los campos "A/CC" en mac mail, es decir. cuando no. de tokens en un campo de token aumenta la altura del campo "To" aumenta a un cierto límite luego comienza a aparecer un desplazamiento vertical!cómo personalizar NSTokenField como en los campos "Para/CC" en el correo de mac?

De forma predeterminada, cuando utilizamos un campo de token, ni su altura aumenta ni aparece un desplazamiento vertical. Intenté diferentes combinaciones en IB, pero no pude obtener la funcionalidad de mac mail.

¿Alguien me puede sugerir alguna solución?

Respuesta

3

Deberá tener la subclase NSTokenField para obtener la funcionalidad que desea. Asegúrese y llame a setWraps: SÍ.

Cuando cambia el contenido del campo del token, tendrá que calcular el tamaño requerido de su campo de token y cambiar el tamaño usted mismo. Lo mismo con agregar una barra de desplazamiento. Después de que la altura del campo del token alcance cierto tamaño, insertará una vista de desplazamiento en el campo. Por el contrario, cuando vuelva a calcular el tamaño del campo del token es menor que el tamaño crítico, eliminará la vista de desplazamiento.

Esto es una cantidad considerable de trabajo (lo he encontrado) para que funcione correctamente. Apple dice que NSTokenField "proporciona edición tokenizada similar al campo de dirección en la aplicación de Correo", pero en realidad no es para nada similar ya que no tiene incorporado el tamaño y arrastrar y soltar es problemático para todo menos para el texto.

+0

thanx .... para su respuesta :) ¡Definitivamente lo intentaré! – Devarshi

2

Pude lograr esto usando IFVerticallyExpandingTextField. Como NSTokenField hereda de NSTextField, hice que IFVerticallyExpandingTextField heredara de NSTokenField y luego subclassed IFVerticallExpandingTextField para implementar todas las cosas que necesitaba hacer con mi versión de NSTokenField.

Esto debería ser solo una gota. De inmediato debería comenzar a funcionar.

+0

El enlace está muerto ... – markjs

+0

El cambio de 'propiedad' de cocoadev.com lo ha dejado un poco inestable. Sin embargo, un simple "sitio: cocoadev.com" de google IFVerticallyExpandingTextField encuentra el código (muy mal formateado): http://cocoadev.com/IFVerticallyExpandingTextField –

Cuestiones relacionadas