Escurecimento NSWindow e camada NSView no topo
-
18-09-2019 - |
Pergunta
Existe alguma maneira eu poderia escurecer minha NSWindow (basicamente colocando uma camada transparente preto por cima dele que você não pode clicar) e, em seguida, a camada um costume NSView em cima?
Solução
Você poderia criar um NSView adicional que contém o costume NSView. Esta nova NSView seria simplesmente chamar a camada transparente preto em seu drawRect e capturar todos os eventos para evitá-los sendo repassado para a janela.
Outras dicas
Uma maneira mais compartimentada seria fazer uma janela sem fronteiras que contém a vista preto e o costume NSView, e fazer com que uma janela filho da janela que deseja “dim”. Em seguida, use NSViewAnimation a desvanecer-se da janela e sair.
Você vai, naturalmente, necessidade de manusear, mantendo seus tamanhos combinados se a janela “esbatida” é redimensionável.
Você pode apenas definir a cor de sua NSWindow o fundo preto e alterar a opacidade a seu gosto.