NSTableView et selectedrows

chaps31chaps31 Membre
15:47 modifié dans API AppKit #1
Problème insoluble (pour moi  :)beta:  )  du jour :

J'ai une tableview dans mon interface, je veux que lorsque je cllique sur une ligne je puisse récupérer dans une variable une des colonnes du datasource (qui ne s'affiche pas à  l'écran).
Mon raisonnement : je récupère l'index de la ligne de la TableView et m'en sert pour revenir à  la table source (même index de ligne non ?) d'où grace à  cet index je retire ma valeur.

Donc :

-(IBAction)selectClient:(id)sender
{
if(tableclients)
{
int idcl1=[tableView selectedRow];
if(idcl1==-1) return;
id client = [tableclients objectAtIndex:[tableView selectedRow]];
NSLog(@ligne : %@ et client : %@",idcl1,client);
}
}

Où tableView est déclarée outlet variable d'instance dans le .h et relié dans IB à  la tableview, l'IBAction pour l'instant relié à  un bouton pour ne pas me soucier d'une éventuelle impossibilité de lier un IBAction au clique sur ma tableview (pb. à  voir dans un 2eme temps).
tableclients est le tableau source, il est bien rempli pas de pb, pour le test avec 2 lignes.

- Lorsque je lance l'IBAction via le bouton sans sélectionner de ligne : rien ne se passe normal (idcl1 vaut -1).
- Lorsque je sélectionne la première ligne, "client" prend bien cette ligne qui s'affiche mais avec idcl1 qui vaut "null"... Ca ne devrait pas être 0 ?
- - Lorsque je sélectionne la deuxième ligne, bug, plantage de l'appli...

SOS, Merci

Réponses

  • Philippe49Philippe49 Membre
    15:47 modifié #2
    dans 1206450344:



    -(IBAction)selectClient:(id)sender
    {
    if(tableclients)
    {
    int idcl1=[tableView selectedRow];
    if(idcl1==-1) return;
    id client = [tableclients objectAtIndex:[tableView selectedRow]];
    NSLog(@ligne : [size=18pt]%%d[/size] et client : %@",idcl1,client);
    }
    }


  • chaps31chaps31 Membre
    15:47 modifié #3
    Merci mille fois, c'était tout connement le NSLog qui faisait bugger... bon sang  :)beta: :)beta:

    Le coté positif c'est que plus j'avance... heu... plus j'avance...
Connectez-vous ou Inscrivez-vous pour répondre.