2016-03-10 3 views
0

osx- J'ai deux fenêtres, J'ai d'abord mis la première fenêtre fenêtre clé, puis définissez la deuxième fenêtre à fenêtre clé, puis j'appelle [NSApp activateIgnoringOtherApps: Oui]. Et j'imprime [[NSApplication sharedApplication] orderedWindows];Pourquoi la fenêtre principale et la fenêtre principale ne sont pas la fenêtre supérieure?

J'ai trouvé, si la première fenêtre fermée, les orderedWindows seront seulement la deuxième fenêtre.

Mais si la première fenêtre est toujours ouverte, même si je l'avais fait la deuxième fenêtre la clé et principale, mais les orderedWindows sera {FirstWindow, secondWindow}

Mais je veux la deuxième fenêtre soit l'avant la un.

Je fais aussi la secondWindow faire comme ceci:

[captureWindow setLevel:NSStatusWindowLevel + 2]; 
    [captureWindow setReleasedWhenClosed:YES]; 
    [captureWindow setAcceptsMouseMovedEvents:YES]; 
    [captureWindow setMovableByWindowBackground:NO]; 
    [captureWindow makeKeyAndOrderFront:self]; 
    [captureWindow orderFrontRegardless]; 
    [captureWindow orderFront:self]; 
    [captureWindow makeKeyWindow]; 
    [captureWindow makeMainWindow]; 
    [NSApp activateIgnoringOtherApps:YES]; 

Mais quand [NSApp activateIgnoringOtherApps: OUI]; une fois exécuté, si la première fenêtre est toujours à l'écran, le windowOrdered sera {FirstWindow, secondWindow}, donc je pense que le orderFront n'est pas travaillé?

Répondre

1

Ni « clé » ni « principale » est liée à la commande. Si vous voulez faire une fenêtre ordonnée avant, alors la méthode est [NSWindow orderFront:]. Il y a une méthode pratique qui est souvent utilisée pour faire les deux: [NSWindow makeKeyAndOrderFront:].

+0

Je l'ai fait, mais il pas encore travaillé, il va d'abord clignote pour indiquer la première fenêtre, puis afficher la deuxième fenêtre. – melody5417

+0

La deuxième fenêtre ne la fenêtre du haut sur l'écran, mais il y avait un flash pour afficher la première fenêtre, et j'imprimer le windowOrdered était {FirstWindow, secondWindow} même si j'ai commandé l'avant secondWindow. [/ cry] – melody5417

+0

Merci pour l'aide, je sais juste que je devrais cliquer sur la coche pour marquer la réponse acceptée. – melody5417