46 votes

Comment ouvrez-vous la fenêtre Application lorsque vous cliquez sur l'icône du Dock?

Je suis surpris que cela ne se produise pas automatiquement, mais j'aimerais que la fenêtre de mes applications s'ouvre automatiquement lorsque vous cliquez sur l'icône du Dock.

Juste pour clarifier, lorsque j'ouvre l'application, la fenêtre s'ouvre automatiquement, mais lorsque je clique sur la croix de la fenêtre mais laisse l'application en cours d'exécution, la fenêtre ne s'ouvre pas lorsque je clique sur l'icône du dock.

68voto

Benedict Cohen Points 6997

Implémentez - (BOOL)applicationShouldHandleReopen:(NSApplication *)theApplication hasVisibleWindows:(BOOL)flag dans votre délégué d'application. Consultez la documentation pour les détails de la valeur de retour.

Les applications basées sur des documents et les applications non basées sur des documents se comportent légèrement différemment. S'il n'y a pas de fenêtres ouvertes lorsque vous cliquez sur l'icône du dock d'une application basée sur un document, cela créera un nouveau document. S'il n'y a pas de fenêtres ouvertes lorsque vous cliquez sur l'icône du dock d'une application non basée sur un document, cela ne fera rien.

15voto

Dipak Narigara Points 911
- (BOOL)applicationShouldHandleReopen:(NSApplication *)theApplication hasVisibleWindows:(BOOL)flag
{
    if (flag) {
        return NO;
    }
    else
    {
       [YourWindow makeKeyAndOrderFront:self];// Window that you want open while click on dock app icon
        return YES;
    }
}

12voto

iKindred Points 554

C'est ce que je fais pour que la fenêtre principale d'une application non basée sur un document revienne à l'écran une fois qu'elle a été fermée. Je sais que ce n'est peut-être pas la bonne façon de le faire, mais cela fonctionne pour moi jusqu'à présent.

Implémentée sur l'AppDelegate, la fenêtre est définie comme variable d'instance du même objet.

 - (BOOL) applicationShouldOpenUntitledFile:(NSApplication *)sender
{
    [window makeKeyAndOrderFront:self];
    return NO;
}
 

Si quelqu'un a une meilleure solution, veuillez répondre. Merci!

4voto

Nathan Kinsinger Points 6202

Un document en fonction de l'application s'ouvre automatiquement un nouveau document sans titre lors de l'application devient actif, donc je suis en supposant que vous faites référence à un non-document à partir de l'app.

Mettre en œuvre les applicationDidBecomeActive: méthode de votre application délégué et d'ouverture/affiche la fenêtre.

Edit:

Quelques informations sur les Délégués.

Quelques informations sur l'Ouverture et la Fermeture de Windows et le NSWindow API

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X