Domanda

Ho un pannello delle preferenze nella mia applicazione in cui ho un NSColorWell per impostare un po 'di colore di sfondo e un pulsante che apre un NSFontPanel per scegliere un font.

Il comportamento che voglio avere è il seguente:

  • Quando faccio clic su NSColorWell quindi trascino un po 'di colore nel pannello, voglio che cambi il colore di sfondo nella mia "anteprima" area mentre trascino.

  • Quando faccio clic su " Cambia carattere ... " , visualizzo il mio NSFontPanel e, siccome scelgo un font, questo dovrebbe cambiare nella mia " preview " anche l'area. Supponi di fare clic sul pulsante colore del NSFontPanel , voglio cambiare il colore del mio carattere .

In sostanza sto cercando di far funzionare in modo indipendente entrambi i pannelli a colori (anche se da quello che ho visto c'è davvero un solo pannello condiviso per app)

In questo momento, supponiamo che io abbia i pannelli di carattere e colore aperti. Quando clicco bene sul colore nella mia finestra si attiva, quindi se clicco sul pulsante colore nel pannello dei caratteri il colore non influisce sul carattere ma piuttosto sullo sfondo, poiché il colore rimane attivo e perché mi sono registrato per il cambio colore notifiche nella mia classe di controller.

Qualcuno potrebbe darmi un esempio di un modo specifico per codificare questo tipo di comportamento? Sembra che ci siano molti modi diversi per mostrare NSFontPanel e NSColorPanel ( NSFontPanel o NSFontManager ? ), oltre a molti modi per gestire gli eventi provenienti dai pannelli stessi (notifiche? delegati (sul NSFontManager o NSFontPanel )? inserendo il controller nella catena di responder? ). Non ho trovato linee guida su un modo ideale per gestire più di una fonte di colore contemporaneamente e sono un po 'perso.

Grazie in anticipo!

È stato utile?

Soluzione

Il meccanismo di selezione dei colori è progettato specificamente per consentirti di "attivare" più pozzetti di colore, quindi impostare il loro colore contemporaneamente. Credo che il motivo per cui il pulsante colorato del pannello dei caratteri non " lascia andare " del selettore colori è perché apparentemente non è in realtà un "colore ben". Non ho notato questo comportamento direttamente, ma è facilmente riproducibile con un semplice xib fresco con un pozzo di colore e una visualizzazione di testo standard.

In sostanza, è possibile fare clic sia sul pozzo che sul colore del carattere e sia il pozzo che il testo selezionato cambieranno nel colore selezionato. Puoi anche disattivare il pozzo e cambierà solo il testo. Tuttavia, non puoi creare il pannello dei caratteri " lascia andare " del selettore colore fino a quando non si chiude il pannello dei caratteri.

Lo definirei un bug: http://bugreport.apple.com

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top