5 votes

Comment créer une fenêtre modale NSW personnalisée ?

Je veux créer une NSWindow personnalisée qui agit comme une boîte de dialogue modale. Par personnalisé, j'entends que la fenêtre comporte des contrôles utilisateur normaux, avec des boutons "OK" et "Annuler". La boîte de dialogue contiendra des informations en lecture seule, quelques cases à cocher, des champs d'édition sécurisés, etc.

Le fichier MainMenu.xib contient la fenêtre normale visible au lancement, ainsi que la fenêtre NSW personnalisée (qui n'est PAS visible au lancement).

J'essaie de trouver un exemple de code pour lancer la fenêtre en mode modal (après l'initialisation de l'application et le lancement de la fenêtre principale), et sur "OK" lancer un processus, et sur le succès de ce processus cacher le dialogue. Ou, en cas d'échec, laisser la fenêtre de dialogue ouverte, mais afficher une feuille d'erreur dans la fenêtre de dialogue.

Toute aide est appréciée, merci.

4voto

alastair Points 3040

Vous voulez regarder NSApplication 's -runModalForWindow: et/ou -runModalSession: méthodes. Notez que l'utilisation de fenêtres modales est généralement une mauvaise idée et que si vous pouvez éviter de le faire, vous devriez le faire ; cela dit, il faut parfois le faire.

Pour ce qui est de lancer un processus, d'attendre qu'il se termine et ainsi de suite, vous pouvez probablement faire ce dont vous avez besoin avec NSTask mais vous ne donnez pas assez de détails pour en être certain. Vous voudriez probablement observer NSTaskDidTerminateNotification pour vous dire quand la tâche était terminée.

Voir

http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/OperatingSystem/OperatingSystem.html

pour en savoir plus sur NSTask et

http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/WinPanel/Concepts/UsingModalWindows.html%23//apple_ref/doc/uid/20000223-CJBEADBA

pour en savoir plus sur le modal NSWindow l'usage.

1voto

Sherm Pendley Points 10822

Jetez un coup d'œil au site de NSApplication. -runModalForWindow: et " Utilisation des dialogues modaux d'application ."

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X