2011-09-02 3 views
1

J'ai une PDE personnalisée avec un bouton dessus et je voudrais montrer un nouveau NSPanel quand je clique dessus. Lorsque j'utilise les fonctions orderFront ou makeKeyAndOrderFront, le panneau apparaît mais sous la fenêtre de dialogue d'impression et n'a pas de focus, je ne peux rien faire. Quand j'utilise la fonction runModelForWindow, le panneau apparaît sur la fenêtre et semble être correct, mais d'abord c'est modal et je voudrais que le panneau ne soit pas modal et quand je clique sur le bouton rouge pour fermer le panneau il disparaît mais le principal La boîte de dialogue d'impression n'a pas de focus et je ne peux rien faire avec ça, même fermer l'application.Ouvrir NSPanel en cliquant sur le bouton dans le PDE

S'il vous plaît aidez-moi. Je suis novice sur la programmation Mac.

+1

Qu'est-ce qu'un PDE? De plus, si je comprends bien, vous avez déjà "la boîte de dialogue d'impression", qui est, probablement, modale. Et si * est * modal, il aura la priorité de mise au point, pour ainsi dire, rien d'autre ne peut être mis au point, quand il y a un panneau modal. En outre, les directives d'Apple découragent fortement d'avoir plusieurs fenêtres ou panneaux modaux en même temps. – Ibolit

+0

PDE - Extension de dialogue d'impression, j'ai également fait un volet personnalisé dans la boîte de dialogue d'impression. Vous avez raison, la boîte de dialogue d'impression est modale, mais je ne veux pas que mon nouveau panneau soit modal. J'ai vu un exemple où c'est possible. –

Répondre

1

Je l'ai trouvé:

[panel setLevel:CGShieldingWindowLevel()]; 
[panel setWorksWhenModal:YES]; 
[panel makeKeyAndOrderFront:self]; 
Questions connexes