connaitre la fenêtre qui est en premier plan
wisky
Membre
Hello à tous,
Dans un programme Document Based, j'aimerais savoir quel est la fenêtre qui ce trouve au premier plan.
L'application comporte des fenêtres venant de plug-in.
Ce que je cherche à faire c'est de changer la vue ce trouvant dans une palette d'outils selon la fenêtre et selon le plug-in.
Donc je cherche à savoir quel est la fenêtre active (ou qui vient d'être activé) puis à quel plug-in elle appartient et à partir de là je charge les outils correspondant.
J'ai donc essayer ça :
[tt]//notification pour savoir quel est la fenêtre au premier plan
- (void)windowDidBecomeMain:(NSNotification *)aNotification
{
NSLog(@windowDidBecomeMain::%@",aNotification);
}
- (void)windowDidBecomeKey:(NSNotification *)aNotification
{
NSLog(@windowDidBecomeKey::%@",aNotification);
}[/tt]
Malheureusement ça ne marche pas. J'ai bien une liaison delegate entre File's owner et le contrôleur qui à le code ci-dessus.
Je suis perdu :why?:
Dans un programme Document Based, j'aimerais savoir quel est la fenêtre qui ce trouve au premier plan.
L'application comporte des fenêtres venant de plug-in.
Ce que je cherche à faire c'est de changer la vue ce trouvant dans une palette d'outils selon la fenêtre et selon le plug-in.
Donc je cherche à savoir quel est la fenêtre active (ou qui vient d'être activé) puis à quel plug-in elle appartient et à partir de là je charge les outils correspondant.
J'ai donc essayer ça :
[tt]//notification pour savoir quel est la fenêtre au premier plan
- (void)windowDidBecomeMain:(NSNotification *)aNotification
{
NSLog(@windowDidBecomeMain::%@",aNotification);
}
- (void)windowDidBecomeKey:(NSNotification *)aNotification
{
NSLog(@windowDidBecomeKey::%@",aNotification);
}[/tt]
Malheureusement ça ne marche pas. J'ai bien une liaison delegate entre File's owner et le contrôleur qui à le code ci-dessus.
Je suis perdu :why?:
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
C'est dans NSApplication que tu trouveras ton bonheur :
Pour savoir à quel plug-in la fenêtre appartient, il faudrait en savoir un peu plus...
Une fenêtre, c'est une fenêtre, quelque soit l'origine du code (classe, application ou plug-in) qui l'a créé.
.
[NSApp keyWindow]
non ? Au moins on est sûr que c'est la fenêtre qui reçois les événements (donc celle est premier plan)
Je testerai ça...
Dans mon module pricipal j'ai 2 array: un qui contient la liste des plug-in charger et l'autre contient les instances des plug-in utilisés.
J'aimerai savoir quel est l'intance d'une fenêtre pour demander au bon plug-in la vue des outils.
Merci pour le code, mais j'aimerai recevoir une notification quand il y a une changement de niveau des fenêtres
Installe ça dans le code d'initialisation de ton contrôleur :
Ceci installe un observer sur la notification de passage d'une fenêtre en main.
Dès qu'une fenêtre devient main, la méthode windowDidBecomeMainNotification: sera appellée.
Ensuite, toujours dans ce contrôleur :
Il suffit de récupérer la fenêtre qui vient de devenir main pour ensuite faire le traitement adéquat.
Dans l'exemple, j'utilise le titre de la fenêtre au premier plan pour déterminer quelle palette je dois afficher.
A toi d'utiliser une autre méthode de différenciation des fenêtres.
.