Por que minha folha não está ligado à janela é executado para?
-
21-08-2019 - |
Pergunta
Eu tenho um NIB que contém duas janelas, uma é a janela principal do aplicativo visível no lançamento e o outro é uma folha de costume (e, portanto, não visível no lançamento). Quando a folha é necessária minhas ligações do controlador:
[NSApp beginSheet: sheetWindow modalForWindow: mainWindow modalDelegate: self didEndSelector: @selector(didEndSheet:returnCode:contextInfo:) contextInfo: nil];
que exibe a janela de folha e inicia uma sessão modal, e a janela tem uma barra de título padrão Aqua, não é 'ligado' para a janela principal e podem ser movimentados apenas como uma janela normal . Escusado será dizer, isso não é desejável :-). Por que não a janela de folha de "pop" da janela é executado para, como folhas, normalmente, quando começou desta forma?
eu me perguntava se o fato de que eu estava começando a folha dentro -awakeFromNib
do controlador pode ter um efeito, então me mudei a folha a ação de um botão eu poderia desencadear mais tarde. Isso não mudou o comportamento. Eu não pensei em mais nada para tentar. Eu estou visando o SDK 10,5, usando o Xcode 3.1.
Editar: por isso parece que eu criei um diálogo modal; folhas e diálogos app-modal são ambos começou com o método -beginSheet:modalForWindow:modalDelegate:didEndSelector:contextInfo:
. Mas como faço para indicar que a minha janela deve ser uma folha e não uma caixa de diálogo modal?
Solução
Se mainwindow é nulo, em seguida, a folha será exibido como uma janela / diálogo.
Outras dicas
Isto aconteceu-me um par de dias atrás:
- Você se esqueceu de definir a janela de saída do seu controlador janela ( proprietário do arquivo do arquivo nib).
Como indicado por Nathan, você pode ver que o método
-[NSWindowController window]
retorna nil. - Você também deve desmarcar a visível no lançamento opção da folha.