Conserver une application active

aLittleWoodElfe

Membre junior
28 Février 2004
81
1
Bonjour,

Je cherche à faire en sorte que l'utilisateur ne puisse pas faire passer mon application et son unique fenêtre au second plan et ne puisse pas non plus faire quoi que ce soit en dehors de l'application tant qu'il n'a pas quitté l'application en question.

J'ai bien une idée sur comment faire ça mais elle n'est pas trés élégante (détecter la désacitivation de mon appli et réagir en la réactivant).

Quelqu'un à une idée plus propre ?
 

la tortue

Membre confirmé
6 Novembre 2003
397
1
En fait, la classe NSApplication n'est pas vraiment faite pour ce genre de chose. Au contraire tout est prévu pour que l'utilisateur puisse choisir la fenêtre qu'il veut voir.
As-tu une raison particulière de l'empêcher d'aller sur une autre fenêtre?
Parce que là ça semble pas être une très bonne idée...

En revanche, il existe des fonctions Quartz pour passer ton application en environnement protégé, c'est peut-être cela qu'il te faut?
 

aLittleWoodElfe

Membre junior
28 Février 2004
81
1
Mon application est en fait un popup qui apparait lorsque l'utilisateur lance une impression.

Il demande une validation et n'autorise l'impression qu'à cette condition.

(les impressions passant par un serveur d'impression et non pas directement vers l'imprimante).
 

la tortue

Membre confirmé
6 Novembre 2003
397
1
Dans ce cas il suffit que tu utilises une fenêtre modale -[NSPanel runModal] ou [NSWindow beginSheet...]
 

aLittleWoodElfe

Membre junior
28 Février 2004
81
1
D'après ce que j'ai compris des fenêtres modales elles ne fonctionnent que vis à vis de l'application qui les lance, mais elles n'ont aucun effet sur les autres applications. Ca ne correspond donc pas à ce que je cherche.
 

la tortue

Membre confirmé
6 Novembre 2003
397
1
Je ne vois pas quel est ton intérêt à empêcher l'utilisateur d'aller dans l'application qu'il souhaite. Franchement, c'est pas du tout, mais alors pas du tout mac-user-friendly ton truc...

As-tu une vraie bonne raison de faire ça?
 

aLittleWoodElfe

Membre junior
28 Février 2004
81
1
Oui je sais bien que ce n'est pas du tout Mac-user friendly, c'est d'ailleurs pour ça qu'on ne peut pas le faire facilement.

Mais ce n'est pas moi qui décide, le chef m'a dit de copier la façon dont fonctionne la version Windows du soft alors je copie... :-(
 

Eddy58

Membre confirmé
27 Décembre 2002
134
0
Visiter le site
Et ton chef ne sais pas que le portage d'applications passe avant tout par le respect du système ? Si le système ne te permet pas de faire telle ou telle chose (à moins de bidouiller), c'est qu'il y a une raison.......
 

aLittleWoodElfe

Membre junior
28 Février 2004
81
1
Bon indépendamment du fait que ça soit propre ou pas et bien que je sois parfaitement conscient qu'il ne faut pas le faire (et en tant qu'utilisateur j'ai horreur de me trouver face à ce genre de comportement) voila comment j'ai fait : au niveau du controleur de ma fenêtre principale j'ai implémentée le delegate

- (void) applicationWillResignActive(NSNotification *)aNotification
{
[[aNotification object] activateIgnoringOtherApps: YES];
}