2 NSTableView 1 méthode numberOfRowsInTableView
BornToBeCocoa
Membre
Hello,
J'essaie de créer une appli avec une fenêtre principale dans laquelle il y a deux NSTableView.
La fenêtre principale est gérée par une classe unique qui contient une seule méthode
Au préalable j'ai bien sûr déclaré deux objets IBOutlet que j'ai connecté à ma classe dans IB
Evidemment l'exécution du code me renvoi :
Comment faire pour savoir si c'est tableViewUn ou tableViewDeux qui a appelé la méthode ?
:why?:
Merci
J'essaie de créer une appli avec une fenêtre principale dans laquelle il y a deux NSTableView.
La fenêtre principale est gérée par une classe unique qui contient une seule méthode
<br />- (int)numberOfRowsInTableView:(NSTableView *)tableView<br />{<br /> NSLog(@"NSTableView ayant appelé la méthode = %@", tableView);<br /> return;<br />}<br />
Au préalable j'ai bien sûr déclaré deux objets IBOutlet que j'ai connecté à ma classe dans IB
IBOutlet NSTableView *tableViewUn;<br />IBOutlet NSTableView *tableViewDeux;
Evidemment l'exécution du code me renvoi :
NSTableView ayant appelé la méthode = <NSTableView: 0x348c90>
Comment faire pour savoir si c'est tableViewUn ou tableViewDeux qui a appelé la méthode ?
:why?:
Merci
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Tu as juste à comparer la valeur du pointeur de l'argument "tableView" de ta méthode datasource avec les valeurs pointeurs de tes variables d'instances "tableViewUn" et "tableViewDeux", ensuite tu renvoies le nombre de rangées selon la comparaison.
[tt]
-(int)numberOfRowsInTableView:(NSTableView *)tableView
{
if (tableView==tableViewUn)
{
return nbRows1;
}
if (tableView==tableViewDeux)
{
return nbRows2;
}
}
[/tt]
J'avais essayé cette solution mais elle ne fonctionnait pas aussi je croyais être sur la mauvaise piste.
En fait cela fonctionne très bien mais à condition que je supprime les bindings et que je gère moi même les NSTableView.
Pour je ne sais quelle raison mystérieuse, avec les bindings, impossible de comparer la valeur du pointeur de l'argument "tableView" avec les valeurs des pointeurs des variables d'instances "tableViewUn" et "tableViewDeux".
Il va falloir que je potasse un peu plus les bindings avant de m'en servir. Paradoxalement c'est sensé simplifier la vie mais je n'ai pas encore tout compris.
En tout cas merci encore.
J'estime que pour se mettre aux bindings, il faut déjà une certaine expérience, afin de pleinement comprendre le moment venu ce qu'apportent les bindings par rapport au code "traditionnel", en terme de productivité et de fonctionnalités. Quand j'estimerais en savoir assez, je me pencherais sur ces fameux bindings.
Mais si tu as des questions sur les bindings, notre spécialiste "bindingologue", ClicCool, se fera sûrement un plaisir d'y répondre.