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?

Foi útil?

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.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top