NSCombobox et autoremplissage

chaps31chaps31 Membre
10:31 modifié dans API AppKit #1
Je me heurte à  un problème déjà  rencontré et déjà  discuté ici. EN relisant le post j'ai trouvé la solution sauf à  un dernier soucis, pourtant à  l'époque je l'avais résolu sans dire comment.. J'ai regardé mon ancien code sans succès (mais c'est le bordel aussi ce code... ;)  )

J'ai une NSCombobox qui va très bien se remplir avec le tableau que j'ai spécifié en datasource, lorsque je tape il essai de remplir le champs avec une valeur de la liste, très bien très bien.

Sauf que... tout ça marche uniquement si je sélectionne la liste une fois, car sinon la combobox ne va pas par défaut chercher le datasource... Un reloadData dans le awakeFromNib ne marche pas, j'ai essayé pas mal de trucs sans succès, SOS... Si j'ai la réponse je la marque cette fois.

NB : Il semble que la dernière fois un IBAction est résolu le problème, mais impossible à  reproduire...
http://www.objective-cocoa.org/forum/index.php?topic=2734.msg27347#msg27347

Réponses

  • schlumschlum Membre
    10:31 modifié #2
    Le tableau du dataSourc est initialisé / rempli à  quel moment ?
    Si c'est dans un awakeFromNib aussi tu risques d'avoir des soucis.
  • chaps31chaps31 Membre
    10:31 modifié #3
    Dans le même awakefromnib, juste avant...  :o >:)
  • schlumschlum Membre
    10:31 modifié #4
    Si c'est dans le même avant, ça devrait aller...
  • chaps31chaps31 Membre
    10:31 modifié #5
    Et non, le reloaddata ne reload pas, essai tu verras, le tableau source est bien rempli, les méthode du protocole datasource en place le lien IB créé, le autocompletes et le datasource du combobox dans IB cochés...

    Mais tant que l'utilisateurs ne clique pas sur la combobox il ignore le datasource...
  • schlumschlum Membre
    10:31 modifié #6
    Que voudrais-tu qu'il fasse ? Le dataSource n'est pas ignoré, mais rien n'est sélectionné par défaut, c'est tout  ???
  • chaps31chaps31 Membre
    10:31 modifié #7
    Comment faire pour l'obliger à  charger la liste du combobox sans intervention de l'utilisateur ?
  • NoNo Membre
    10:31 modifié #8
    J'ai eu un problème similaire avec une combo :
    dans IB, j'ai bien relié la combo avec mon objet contrôleur en tant que delegate, et dans le awakeFromNib, j'utilisais la méthode setUsesDataSource: à  YES pour indiquer que la liste utilise une datasource.
    Sauf que ça marchotait bancalement.

    En initialisant tout dans IB (et datasource et cochage "Uses Data Source" dans l'inspecteur de la combo), tout fonctionne normalement.
    L'auto remplissage fonctionne immédiatement (sans déroulement initial de la liste, ni utilisation d'un reloadQuelqueChose).
  • schlumschlum Membre
    10:31 modifié #9
    Ben oui, pareil, mais pour utiliser l'auto-complétion, il faut le sélectionner... Dont toujours pas compris ce qu'il veut.
  • chaps31chaps31 Membre
    10:31 modifié #10
    Je confirme dans IB Uses Data Source est coché ainsi que autocompletes, et les liens datasource et delegate sont activés... Misère...
  • chaps31chaps31 Membre
    10:31 modifié #11
    Hop Hop Hop j'ai trouvé, l'erreur : rester si longtemps le nez dans le code, je voyais plus rien... Je n'ose pas me répéter (http://www.objective-cocoa.org/forum/index.php?topic=3154.0)

    Ca marche mais le reloadData est nécessaire dans mon awakeFromNib
Connectez-vous ou Inscrivez-vous pour répondre.