Pregunta

Tengo un panel de preferencias en mi aplicación en el que tengo un NSColorWell para configurar un color de fondo y un botón que abre un NSFontPanel para elegir una fuente.

El comportamiento que quiero tener es el siguiente:

  • Cuando hago clic en el NSColorWell y luego arrastro sobre un color en el panel, quiero que cambie el color de fondo en mi " vista previa " área mientras arrastro.

  • Cuando hago clic en " Cambiar fuente ... " botón, muestro mi NSFontPanel y cuando elijo una fuente, debería cambiar en mi " vista previa " área también. Digamos que hago clic en el botón color del NSFontPanel , quiero cambiar el color de mi fuente .

En esencia, estoy tratando de hacer que ambos paneles de color (aunque, por lo que he visto, en realidad solo hay un panel compartido por aplicación) funcionen de forma independiente.

En este momento, digamos que tengo abiertos los paneles de fuente y color. Cuando hago clic en el color en mi ventana se activa, entonces si hago clic en el botón de color en el panel de fuente, el color no afecta a la fuente sino al fondo, ya que el color permanece activado y porque me registré para el cambio de color notificaciones en mi clase de controlador.

¿Podría alguien darme un ejemplo de una forma específica de codificar este tipo de comportamiento? Parece que hay muchas formas diferentes de hacer que se muestren NSFontPanel y NSColorPanel ( NSFontPanel o NSFontManager ? ), así como muchas formas de manejar los eventos que provienen de los propios paneles (¿notificaciones? ) No he encontrado ninguna guía sobre una forma ideal de manejar más de una fuente de color a la vez y estoy un poco perdido.

Gracias de antemano!

¿Fue útil?

Solución

El mecanismo de selección de color está diseñado específicamente para que pueda "activar" múltiples pozos de color, luego establezca su color simultáneamente. Creo que la razón por la cual el botón de color del panel de fuente no "suelta" del selector de color se debe a que aparentemente no es en realidad un "color bien". No he notado este comportamiento directamente, pero es fácilmente reproducible con un simple xib fresco con un color bien y una vista de texto estándar.

Esencialmente, puede hacer clic tanto en el color del pozo como en el de la fuente y tanto el texto del pozo como el seleccionado cambiarán al color seleccionado. Incluso puede apagar el pozo y solo cambiará el texto. Sin embargo, no puede hacer que el panel de fuente "suelte" del selector de color hasta que cierre el panel de fuentes.

Yo llamaría a esto un error: http://bugreport.apple.com

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top