2009-12-15 5 views
1

Voici mon code:cliquez sur l'élément de la barre de menu pour afficher une fenêtre

if ([window isVisible]) { 
    [NSApp activateIgnoringOtherApps:YES]; 
    [window orderOut:nil]; 
    return; 
} 
[NSApp activateIgnoringOtherApps:YES]; 
[window makeKeyAndOrderFront:nil]; 
return; 

mais si l'utilisateur clique/modifie la fenêtre en cours, puis clique sur la barre de menu, il fermera la fenêtre. Comment puis-je arrêter ça?

+0

Les fenêtres ne sont pas censées se fermer avant d'avoir été averties. Vous avez probablement un bug quelque part. –

Répondre

1

Au lieu de vérifier si la fenêtre est ordonnée (isVisible), vérifier si elle est la fenêtre active (ou [NSApp mainWindow][NSApp keyWindow] - details) et si votre application est active ([NSApp isActive]).