Conserver une application active

aLittleWoodElfe

Membre confirmé
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 ?
 
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...
tongue.gif

En revanche, il existe des fonctions Quartz pour passer ton application en environnement protégé, c'est peut-être cela qu'il te faut?
smile.gif
 
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).
 
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.
 
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...
out.gif

As-tu une vraie bonne raison de faire ça?
 
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... :-(
 
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];
}