Pergunta

Estou tentando determinar quando um Nsopenpanel está fechando antes de realmente fechar. Eu preciso fazer isso para que eu possa sobrepor outra janela com uma captura de tela do painel aberto para ser animado. Infelizmente, todas as notificações que você parecem acessar parecem disparar depois que a janela já foi fechada. Isso leva a uma gagueira chocante antes de iniciar sua transição.

Eu tentei:
- Usando métodos de delegados de NSWindow no painel aberto (aparentemente, nenhum dos métodos de delegados de NSWIDOW funcionam)
- Painel de monitoramento: userEredFilename: confirmado: (não chamado)
- Mostrar a caixa de diálogo com um retorno de chamada (o retorno de chamada acontece depois que o painel desaparece)

Foi útil?

Solução 2

Outra maneira de lidar com isso foi examinar as subviews da Nsopenpanel para o botão Cancelar e trocar -se como alvo/ação. Foi isso que acabei fazendo.

Outras dicas

Você deve registrar seu controlador como delegado do painel aberto e depois implementar o -panel:isValidFilename: Método delegado. Este método será chamado logo antes do fechamento da caixa de diálogo aberta.

Você deve retornar YES Do método, se você deseja apenas a notificação. Retornando NO Permite que você impeça que a caixa de diálogo aberta seja fechada.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top