Sauvegarde du contenu du menu popup

muqaddarmuqaddar Administrateur
19:01 modifié dans API AppKit #1
Salut,

J'ai un popup qui dépend du contenu d'un tableau. Grâce aux bindings, le contenu du popup est mis à  jour en temps réel. Je souhaite enregistrer ce contenu (enfin la clé qui pointe vers le tableau). Parce que là  quand je relance mon prog, rien n'est sauvegardé, en fait la position selectedIndex n'est pas mémorisée en gros.

Voilà  le code du popup :

//popup websites<br />  NSMutableDictionary *bindingOptions = [NSMutableDictionary dictionary];<br />&nbsp; &nbsp; [bindingOptions setObject:@&quot;No dedicated server&quot; forKey:@&quot;NSNullPlaceholder&quot;];<br />&nbsp; &nbsp; [bindingOptions setObject:[NSNumber numberWithBool:YES] forKey:@&quot;NSInsertsNullPlaceholder&quot;];<br />   [websitesPopup bind: @&quot;content&quot; toObject: serversController withKeyPath:@&quot;arrangedObjects.dicServers.name&quot; options: bindingOptions];<br />


Il faut binder le selectedIndex en plus ?

Réponses

  • ClicCoolClicCool Membre
    19:01 modifié #2
    Eh bien oui, il faut binder le selected Object, Index, tag ou value au choix.

    Comment tu fait avec ton popUp si tu bindes pas le choix fait ??  ::)
  • muqaddarmuqaddar Administrateur
    19:01 modifié #3
    dans 1096206602:

    Eh bien oui, il faut binder le selected Object, Index, tag ou value au choix.


    Soit, mais quelle différence entre selectedObject, selectedValue, selectedIndex ?
    J'avais essayé le selectedIndex sans succès.
  • ClicCoolClicCool Membre
    19:01 modifié #4
    Selected Object: C'est l'option la plus complète, le binding porte sur l'objet sélectionné lui même qui est rénvoyé tel que (avec toutes ses propritétés)

    Selected Value: le binding renvoie seulement la valeur d'un valueForKey appliqué à  l'objet sélectionné.

    Selected index: l'objet récupérant cet index ne reçoit donc que l'index du choix dans le popUp. C'est une bonne économie de place mais il faut être sur que le tableau source du popUp garde bien les mêmes objets dans le même ordre.

    Selected Tag: c'est du même ordre du point de vue de l'économie de taille mais ça permet, en "taggant" les différents éléments du popUp de rester indépendant des tris éventuels.
  • muqaddarmuqaddar Administrateur
    19:01 modifié #5
    Merci pour ces explications.
    Ce qu'il y a c'est que en plus de ces choix, on doit encore jongler avec "selection", selectedObject dan sle controller key...

    J'ai essayé avec selectedObject et selectedIndex, je me prends des valeur <null> quand je relance le prog, ça m'écrase le champ de mon tableau...
  • ClicCoolClicCool Membre
    19:01 modifié #6
    Oups, encore un post loupé (les notifications déconnent j'en ai reçu pour des posts datant d'une semaine et d'autres notifications datées d'une heure dans le futur ??? ) :(

    Le choix du controllerKey dépend du modelKeyPath que tu utilises et de ce que tu bindes comme celected-truc, ça fait tout un tas de combinaisons possibles.

    Essaies le controller key "selection" avec le keyPath de la valeur qui t'interresses sur un binding de selected Value. ;)
  • muqaddarmuqaddar Administrateur
    19:01 modifié #7
    Ouh là  là , c compliqué cette histoire d'autant plus que j'ai aussi une option...

    //popup websites<br />  NSMutableDictionary *bindingOptions = [NSMutableDictionary dictionary];<br />&nbsp; &nbsp; [bindingOptions setObject:@&quot;No dedicated server&quot; forKey:@&quot;NSNullPlaceholder&quot;];<br />&nbsp; &nbsp; [bindingOptions setObject:[NSNumber numberWithBool:YES] forKey:@&quot;NSInsertsNullPlaceholder&quot;];<br />   [websitesPopup bind: @&quot;content&quot; toObject: serversController withKeyPath:@&quot;arrangedObjects.dicServers.name&quot; options: bindingOptions];<br />  [websitesPopup bind: @&quot;selectedValue&quot; toObject: serversController withKeyPath:@&quot;selection.dicServers.name&quot; options: bindingOptions];
    


    bah ça m'efface toujours des champs...  C'est vrai qu'il y a uen infinité de combinaisons !
  • ClicCoolClicCool Membre
    septembre 2004 modifié #8
    ça va pas ton truc:
    Le contenu du popUp est bindé sur le contrôleur qui gère les choix possible OK
    La sélection du popUp doit elle être bindée sur la propriété que le popUp est sensé modifier selon le choix effectué. Pas sur le contrôller du popUp donc. ;)

    [EDIT] tes clefs sont cohérentes mais pas le choix des controllers. en fait il me semble que là  tu demande au contrôleur du popUp de synchroniser sa sélection en fonction de ... sa sélection  :o ??? ;D
  • muqaddarmuqaddar Administrateur
    19:01 modifié #9
    Ouch, j'ai relu ton message 3 fois.
    Et j'y suis arrivé, j'ai compris. Il fallait lui donner une clé en plus, une pour toutes les possiblités et une pour celle sélectionnée, moi j'essayais juste de dire laquelle de toutes les possiblités devait être sélectionnée en plus !

    [websitesPopup bind: @&quot;content&quot; toObject: serversController withKeyPath:@&quot;arrangedObjects.dicServers.name&quot; options: bindingOptions];<br />  [websitesPopup bind: @&quot;selectedValue&quot; toObject: websitesController withKeyPath:@&quot;selection.dicWebsites.server&quot; options: bindingOptions];<br />
    


    ça marche apparemment !
    merci !
  • ClicCoolClicCool Membre
    19:01 modifié #10
    dans 1096219994:

    Ouch, j'ai relu ton message 3 fois.


    En effet je l'ai édité pour ajouter la fin en voyant que c'était clair pour quelqu'un qui sait déjà  mais pas pour quelqu'un qui cherche ... donc très peu clair au résultat  ;)

    Sorry i am confucius  :-\

    Faudra un jour que j'essaie un truc du genre:
    [OC bind: @PostReponse toObject: monCerveauController withKeyPath: @selection.mesIdees.laBonneIdee option: [NSDictionary dictionaryWithObject: [NSNumber numberWithBool: YES] forKey: @RepondreAvantLePastis ];  :P
  • muqaddarmuqaddar Administrateur
    19:01 modifié #11
    Non, mais bon, j'y suis arrivé quand même donc ça va... change rien ClicCool !
  • Eddy58Eddy58 Membre
    19:01 modifié #12
    dans 1096221762:

    Faudra un jour que j'essaie un truc du genre:
    [OC bind: @PostReponse toObject: monCerveauController withKeyPath: @selection.mesIdees.laBonneIdee option: [NSDictionary dictionaryWithObject: [NSNumber numberWithBool: YES] forKey: @"RepondreAvantLePastis" ];  :P


    :boss): :o ;D :P :P
Connectez-vous ou Inscrivez-vous pour répondre.