Bindings "on the fly"

135

Réponses

  • TiffTiff Membre
    19:41 modifié #62
    BIen, reprenons, pourquoi mon pop-up il fait rien que m'embêter ?
  • ClicCoolClicCool Membre
    19:41 modifié #63
    et bien jusqu'à  maintenant il faut ce que tu lui demandes.

    T'as modifié ton code ? t'en es où ?
  • TiffTiff Membre
    19:41 modifié #64
    dans 1094762062:

    et bien jusqu'à  maintenant il faut ce que tu lui demandes.

    Comment ça ?
    Je lui dis que NSNullPlaceholder est @jamais, et il ne l'affiche pas ???
    Pourquoi ça marche avec le titre de la fenêtre et pas avec le pop-up ?
  • ClicCoolClicCool Membre
    19:41 modifié #65
    ah bon ???
    t'as mis quoi comme code ?
  • TiffTiff Membre
    19:41 modifié #66
    Je n'y ai pas touché depuis que tu avais dit que j'avais tout bon.
    <br />- (void)awakeFromNib {<br />   NSArray *values = [NSArray arrayWithObjects: [NSNumber numberWithBool: YES], @&quot;jamais&quot;, nil];<br />   NSArray *keys = [NSArray arrayWithObjects: @&quot;NSInsertsNullPlaceholder&quot;, @&quot;NSNullPlaceholder&quot;, nil];<br />   NSDictionary *options = [NSDictionary dictionaryWithObjects: values forKeys: keys];<br />       [popUp bind: @&quot;selectedObject&quot; toObject: self withKeyPath: @&quot;leJour&quot; options: options];<br />       [window bind: @&quot;title&quot; toObject: self withKeyPath: @&quot;leJour&quot; options: options];<br />       [popUpController bind: @&quot;content&quot; toObject: self withKeyPath: @&quot;jours&quot; options: nil]; }
    
  • ClicCoolClicCool Membre
    19:41 modifié #67
    Ah oui,

    T'as bien ajouté les options au binding sur la selectedObject object du popUp.
    Le nullPlaceHolder sera donc envoyé en cas de non sélection à  tout object demandant quelle est la sélection courante.

    MAIS t'as oublié de mettre l'option du Null Place Holder au binding sur le content du popUp qui ne le prend donc pas en charge lors de l'affichage du contenu justement ;D
  • muqaddarmuqaddar Administrateur
    19:41 modifié #68
    On peut voir un bout d'interface de l'appli Tiff stp ?
  • TiffTiff Membre
    19:41 modifié #69
    Si j'ajoute ça :
    <br />[popUp bind: @&quot;content&quot; toObject: self withKeyPath: @&quot;leJour&quot; options: options];
    

    ça court-circuite le controller, et je n'ai plus rien dans le pop-up, sauf "jamais"
  • ClicCoolClicCool Membre
    19:41 modifié #70
    Comment ça, ça court circuite le contrôleur ?
    Ce binding est encore fait sous I.B. ?
    Vire le réglage sous I.B. tout de suite, c'est pas glop :(
  • TiffTiff Membre
    19:41 modifié #71
    dans 1094763525:

    On peut voir un bout d'interface de l'appli Tiff stp ?

    ça ?

    [Fichier joint supprimé par l'administrateur]
  • ClicCoolClicCool Membre
    19:41 modifié #72
    Mais cré de bon sang, me dit pas que t'as bindé TOUT le contenu du PopUp sur la valeur de leJour qui en plus n'est pas initialisée ???

    Mdr  ;D ::)
  • TiffTiff Membre
    19:41 modifié #73
    dans 1094763977:

    Vire le réglage sous I.B.

    Et comment le popup sait la liste des jours, si je vire le controleur ?
  • ClicCoolClicCool Membre
    19:41 modifié #74
    non, non excuse moi, j'avais compris que t'avais bindé le popUp sous I.B.
    pour le contrôleur on verra après ;)
  • TiffTiff Membre
    19:41 modifié #75
    dans 1094764092:

    t'as bindé TOUT le contenu du PopUp sur la valeur de leJour

    Non, bien sûr, c'est relié à  arrangedObjects du popupcontroller.
    J'ai ajouté la ligne [popup bind...content... @lejour...] pour te faire plaisir, mais je ne vois pas l'intérêt.
  • TiffTiff Membre
    19:41 modifié #76
    dans 1094764321:

    t'avais bindé le popUp sous I.B.

    Ben oui, le content du popUp est bindé sous IB.
  • ClicCoolClicCool Membre
    19:41 modifié #77
    dans 1094764391:

    Non, bien sûr, c'est relié à  arrangedObjects du popupcontroller.

    Si t'as fais ça sous I.B., c'est ce que je disais plus haut, vire ce réglage d'IB

    J'ai ajouté la ligne [popup bind...content... @lejour...] pour te faire plaisir, mais je ne vois pas l'intérêt.

    Pour ce qui est du content, je m'attendais à  ça plutôt:
    [popUp bind: @&quot;content&quot; toObject: popUpController withKeyPath: @&quot;arrangedObjects&quot; options: bindingOptions];
    
  • TiffTiff Membre
    19:41 modifié #78
    Oui, mais :

    PopUp[4817] An uncaught exception was raised
    PopUp[4817] Binding selectedObject cannot be bound to <AppController: 0x335350>
    PopUp[4817] *** Uncaught exception: <NSInternalInconsistencyException> Binding selectedObject cannot be bound to <AppController: 0x335350>

    PopUp has exited due to signal 5 (SIGTRAP).
  • ClicCoolClicCool Membre
    19:41 modifié #79
    ???
    peux tu me montrer ton code de ton awakeFromNib ?
  • TiffTiff Membre
    19:41 modifié #80
    Encore ? ben voila :
    <br />- (void)awakeFromNib {<br />   NSArray *values = [NSArray arrayWithObjects: [NSNumber numberWithBool: YES], @&quot;jamais&quot;, nil];<br />   NSArray *keys = [NSArray arrayWithObjects: @&quot;NSInsertsNullPlaceholder&quot;, @&quot;NSNullPlaceholder&quot;, nil];<br />   NSDictionary *options = [NSDictionary dictionaryWithObjects: values forKeys: keys];<br />       [popUp bind: @&quot;selectedObject&quot; toObject: self withKeyPath: @&quot;leJour&quot; options: options];<br />       [popUp bind: @&quot;content&quot; toObject: popUpController withKeyPath: @&quot;arrangedObjects&quot; options: options];<br />  [window bind: @&quot;title&quot; toObject: self withKeyPath: @&quot;leJour&quot; options: options];<br />       [popUpController bind: @&quot;content&quot; toObject: self withKeyPath: @&quot;jours&quot; options: options]; }
    
  • TiffTiff Membre
    septembre 2004 modifié #81
    Je viens de changer l'ordre des bind : le popupcontroller au début, mais ça ne change rien.

    [EDIT]
    Je viens de virer le popup bind selectedObject. ça marche maintenant. :crackboom:-

    [EDIT]
    Ah ben non, la fenêtre ne change plus, normal @lejour n'a rien à  faire ici.
  • ClicCoolClicCool Membre
    19:41 modifié #82
    Tu peux m'envoyer le projet complet STP, y'a un truc qui cloche mais du diable si je sais où ?
  • TiffTiff Membre
    19:41 modifié #83
    À force de modifier le code sans arrêt, je ne m'y retrouve plus. QUe vient faire leJour là -dedans maintenant ? Voici le projet :

    [Fichier joint supprimé par l'administrateur]
  • ClicCoolClicCool Membre
    19:41 modifié #84
    ???
    J'ai téléchargé ton projet, puis compilé, puis excécuté ....




    ... ça marche impécable !!! ???
  • TiffTiff Membre
    19:41 modifié #85
    Bon, je viens de rajouter :
    [popUp bind: @&quot;selectedObject&quot; toObject: self withKeyPath: @&quot;leJour&quot; options: options];
    

    juste avant [windo bind...] et ça marche parfaitement. :why?:
  • ClicCoolClicCool Membre
    19:41 modifié #86
    Le titre de la fenêtre se met à  jour aussi ?
  • TiffTiff Membre
    19:41 modifié #87
    dans 1094766221:

    ça marche impécable

    Ah ben non ! Si tu changes la sélection, le titre de la fenêtre ne suit pas !
    En ajoutant la ligne ci-dessus, maintenant ça marche.

    J'ai pas bon ?
  • TiffTiff Membre
    19:41 modifié #88
    dans 1094766305:

    Le titre de la fenêtre se met à  jour aussi ?


    OOOOUUUUIIII !!!!!!!!!!!!!!  :rose!:
  • TiffTiff Membre
    19:41 modifié #89
    Une dernière modif :
    j'ai mis nil à  toutes les options, sauf à  [popUp bind:@content...]
    Du coup, la fenêtre affiche untitled lorsque jamais est sélectionné. Parfait.
  • ClicCoolClicCool Membre
    19:41 modifié #90
    Bon t'as tout bon quoi ?

    Alors maintenant une question pour départager les meilleurs:

    - A quoi sert d'avoir un NSArrayController dans le nib ?
    dans la mesure où il n'est plus connecté à  un content ni binder à  quoique ce soit par l'intermédiaire d'I.B. ?

    Non ? Tu vois où je veux en venir ;) ;D ?
    On s'y colle (2 lignes de code de plus)

    [EDIT] j'oubliais:  :rose!:
  • TiffTiff Membre
    19:41 modifié #91
    dans 1094766666:

    Non ? Tu vois où je veux en venir ;) ;D ?

    Malheureusement, oui !  :'(
Connectez-vous ou Inscrivez-vous pour répondre.