Je souhaite demander des informations supplémentaires à l'utilisateur pendant le NSOpenPanel, mais je dois valider cette information avant la fin de l'ouverture de l'écran. Par exemple, je souhaite autoriser l'utilisateur à ajouter une note sur le fichier dans la sélection du panneau ouvert, mais doit valider que ce commentaire n'est pas vide.Validation de l'entrée dans la vue accessoire NSOpenPanel
J'ai une vue accessoire dont les contrôles sont liés à un NSObjectController
dont l'objet de contenu est à son tour lié à l'objet représenté du NSViewController que j'utilise pour charger la plume de la vue accessoire. L'objet représenté a des méthodes de validation conformes à NSKeyValueCoding
(par exemple -(BOOL)validateKey:error:
). La validation est correctement gérée (et les violations signalées via une boîte de dialogue modale) lorsque l'utilisateur modifie les valeurs des contrôles.
Mon problème est que je ne peux pas comprendre comment obtenir la validation si l'utilisateur n'entre pas rien dans la vue des accessoires. Par exemple, disons que j'ai un seul champ de texte dans la vue accessoire dont l'objet lié valide que le texte a une longueur différente de zéro. Si l'utilisateur entre le texte (la validation réussit), puis supprime le texte, la validation échoue et l'utilisateur est présenté avec l'erreur. Cependant, si l'utilisateur n'entre pas de texte, le panneau ouvert se ferme sans erreur. Comment puis-je valider que le texte est différent de avant le panneau ouvert se ferme?