¿Cómo puedo oscurecer todo lo que se muestra en un único NSView?
Pregunta
Fondo: Mi aplicación tiene una ventana principal que contiene algunos objetos NSView
más pequeños, cada uno de los cuales contiene varios controles, etiquetas, imágenes, etc. Las vistas (y todo lo que contiene) se deshabilita en respuesta a un indicador determinado. Cuando se establece el indicador, automáticamente deshabilito y atenúo todos los controles incrustados dentro de ese NSView
.
Pregunta: me gustaría saber cómo oscurecer el NSView
deshabilitado. El efecto que estoy buscando sería algo así como dibujar un cuadro negro transparente al 50% en la parte superior del NSView
deshabilitado. El fondo y todos los controles seguirían siendo visibles, pero los colores serían un tono más oscuro. ¿Hay una manera simple de hacer esto?
Solución
CoreAnimation en 10.5 debería proporcionar una manera fácil de colocar una capa translúcida sobre una vista. Puede crear una capa negra frente a la vista, con una opacidad del 0%. Cuando desee oscurecer la vista, establezca la opacidad de la capa negra al 50%, y la vista se oscurecerá suavemente.