2010-05-05 11 views
0

Si vous appelezApportez le dialogue NSRunAlertPanel Front dans le processus d'arrière-plan

NSRunAlertPanel() 

d'un processus d'arrière-plan dans le cacao, le dialogue ne vient pas à l'avant et reste à la place derrière d'autres fenêtres. Ce post montre que vous pouvez mettre le dialogue au premier plan si vous convertissez le processus en un processus de premier plan. Cependant, si vous maintenez le processus en arrière-plan, existe-t-il un moyen d'obtenir ce comportement?

Répondre

2

Qu'est-ce que vous essayez de faire? Les processus d'arrière-plan peuvent toujours afficher l'interface utilisateur et se placer au premier plan sans utiliser TransformProcessType; assurez-vous simplement que vous êtes un LSUIElement, et non LSBackgroundOnly (ou les équivalents NS * obsolètes). La seule raison pour laquelle vous devez généralement utiliser TransformProcessType est si vous voulez une icône de station d'accueil ou une barre de menu.

+0

J'ai un programme en cours d'exécution qui a une présence dans la barre de menu. Lorsque le programme commence à s'exécuter, je veux qu'il lance un dialogue qui demande à l'utilisateur s'il veut ou non configurer le programme pour qu'il s'exécute au démarrage. En ce moment appelant 'NSRunAlertPanel()' le dialogue se lève mais est souvent caché derrière d'autres fenêtres. Comment est-ce que je pourrais continuer à faire fonctionner mon programme avec seulement une présence dans la barre de menu, mais faire en sorte que le dialogue arrive à l'avant de toutes les fenêtres? – mon4goos

+1

Vous devez apporter votre application à l'avant puis: [NSApp activateIgnoringOtherApps: YES]; –