Déterminer quand un NSOpenPanel fermera
-
20-09-2019 - |
Question
Je suis en train de déterminer quand un NSOpenPanel ferme avant qu'elle ne ferme réellement. Je dois faire ce que je puisse superposer une autre fenêtre avec une capture d'écran du panneau ouvert sur le dessus de celui-ci à animer. Malheureusement, toutes les notifications que vous semblez être en mesure d'accéder semblent tirer après la fenêtre a déjà été fermé. Cela conduit à un bégaiement discordante avant de commencer votre transition.
J'ai essayé:
- en utilisant des méthodes de délégué NSWindow sur le panneau ouvert (apparemment, aucune des méthodes de travail délégué NSWindow)
- Panneau de surveillance: userEnteredFilename: confirmé: (non appelé)
- montrant la boîte de dialogue avec un rappel (callback se produit après que le panneau disparaît)
La solution 2
Une autre façon de gérer cela est de regarder à travers les sous-vues de NSOpenPanel pour le bouton Annuler et vous échanger en tant que cible / action. C'est ce que je fini par faire.
Autres conseils
Vous devez enregistrer votre contrôleur en tant que délégué du panneau ouvert, puis mettre en œuvre la méthode de délégué -panel:isValidFilename:
. Cette méthode sera appelée juste avant que la boîte de dialogue ouverte se ferme.
Vous devez retourner YES
de la méthode si vous voulez juste la notification. De retour NO
vous permet d'empêcher la boîte de dialogue ouverte de fermeture.