Come posso oscurare tutto ciò che viene visualizzato in un singolo NSView?
Domanda
Sfondo: La mia applicazione ha una finestra principale che contiene alcuni oggetti NSView
più piccoli, ognuno dei quali contiene diversi controlli, etichette, immagini, ecc. Uno di questi le viste (e tutto ciò che contiene) sono disabilitate in risposta a un determinato flag. Quando viene impostato il flag, disabilito e disabilito automaticamente tutti i controlli incorporati in quel NSView
.
Domanda: vorrei sapere come oscurare il NSView
disabilitato. L'effetto che sto cercando sarebbe qualcosa come disegnare una scatola nera trasparente al 50% sopra il NSView
disabilitato. Lo sfondo e tutti i controlli sarebbero comunque visibili, ma i colori sarebbero più scuri. C'è un modo semplice per farlo?
Soluzione
CoreAnimation in 10.5 dovrebbe fornire un modo semplice per mettere uno strato traslucido sopra una vista. Puoi creare un livello nero davanti alla vista, con l'opacità allo 0%. Quando vuoi scurire la vista, imposta l'opacità del livello nero al 50% e la vista verrà scurita uniformemente.