NSComboBox (suite) et détection de données

VeillardVeillard Membre
08:32 modifié dans API AppKit #1
Bonjour à  tous,

Je cherche un moyen permettant à  une NSComboBox de vérifier automatiquement si les données saisies par l'utilisateur appartiennent au DataSource.  :P

En fait, comment paramétrer la Combo de telle manière qu'elle sache que des données ont été saisies dès qu'on passe au champ suivant par un simple clic ou en appuyant sur la touche tab.

Pour l'instant, je complète mon DataSource manuellement avec deux boutons : un "ajouter" et un "supprimer".  :-\

Merci de votre aide.

A+

Favouille

Réponses

  • cbrandtcbrandt Membre
    08:32 modifié #2
    essaie de voir les delegates de NSTextField, dont NComboBox hérite... y'a peut-être quelque chose qui te conviendrait:

    <br />- (BOOL)textShouldBeginEditing:(NSText *)textObject<br />- (void)textDidBeginEditing:(NSNotification *)aNotification<br />- (void)textDidChange:(NSNotification *)aNotification<br />- (BOOL)textShouldEndEditing:(NSText *)textObject<br />- (void)textDidEndEditing:(NSNotification *)aNotification<br />
    
  • VeillardVeillard Membre
    08:32 modifié #3
    OK merci, je vais essayer  :)
  • ClicCoolClicCool Membre
    08:32 modifié #4
    Salut Favouille :)

    Tu peux aussi binder la "value" (saisie ou choisie) sur une string perso (et éventuellement dans la foulée, le "content" ou "content value" de ta combo sur un arrayController)

    Ensuite tu te déclares comme observer KVO de ta string, et donc tu es averti de tout changement de la valeur en cours de la combo. A ce moment tu cherches la string dans les valeurs proposées et si elle n'y est pas tu propose de l'y ajouter ....   :)

    Tu me connais ;) , je peux pas m'enpécher de causer KVO et Bindings, mais si tu essaies tu verras que c'est redoutablement efficace et sur :D
  • VeillardVeillard Membre
    08:32 modifié #5
    Salut ClicCool

    Je vais me pencher sur ta solution le temps de potasser la doc sur le sujet  :crackboom:-

    Juste une petite question... Est-ce que les bindings modifient le fichier des prefs ?
    Ce que j'ai fait pour l'instant, c'est gérer le contenu de mes combo en appelant les données que j'ai inscrites dans  les prefs, puis une fois que l'array est modifié (ajout ou suppression d'item) les prefs sont mises à  jour...  ::)

    Ensuite tu te déclares comme observer KVO de ta string, et donc tu es averti de tout changement de la valeur en cours de la combo. A ce moment tu cherches la string dans les valeurs proposées et si elle n'y est pas tu propose de l'y ajouter .... 


    Comment ça se passe pour la suppression d'une valeur ? faut-il passer par une TableView qui permet de choisir la valeur à  supprimer ou faut-il passer par la combo en sélectionnant avant de la supprimer ? Pour l'instant, j'ai opté pour la 2è solution.  ;D

    A+
Connectez-vous ou Inscrivez-vous pour répondre.