Pergunta

Eu tenho um aplicativo de cacau com dois tipos de janelas, cada uma das quais requer um menu principal diferente a ser exibido.

No meu mainmenu.xib, tenho o mainmenu padrão. No window1.xib, eu tenho window1 e no window2.xib eu tenho window2 e é mainmenu.

Quando tenho a primeira janela aberta, tenho o menu padrão, quando abro a Window2, recebo o menu.

No entanto, quando volto para o Window1, ainda vejo o menu do Windows. Como faço para fazer o menu exibido seguir a janela da chave?

Foi útil?

Solução

Nsapplicação tem um método, - (void)setMainMenu:(NSMenu *)aMenu. Você pode passar uma referência ao menu correto no controlador de janela apropriado, implementando - (void)windowDidBecomeKey:(NSNotification *)notification.

Lembre -se de que pode ser mais fácil alterar apenas o submenus em vez de trocar todo o menu principal, já que você não precisará manter duas cópias diferentes do aplicativo, ajuda e outros menus que não mudarão entre as duas janelas .

Outras dicas

Geralmente, você não deve substituir o menu principal inteiro sempre. É mais compatível com as diretrizes da interface humana para simplesmente desativar qualquer itens de menu que não se apliquem à janela atual. E se você realmente deve ter um conjunto de menus completamente diferente na barra de menus, talvez deva dividir essa parte do seu aplicativo em um aplicativo separado.

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