[Résolu]1 controlleur pour 2 NSTableView
UniX
Membre
Salut.
J'ai un objet qui est le controlleur pour 2 NSTableView située dans le même Nib.
Je suis en train d'écrire les méthodes de base pour fournir les données aux NSTableView.
Je pensait faire quelquechose du type :
tableUne et tableDeux sont des outlet vers les 2 NSTableView.
Mais ça ne marche pas, l'appli plante au lancement.
Il faut faire comment alors ?
J'ai un objet qui est le controlleur pour 2 NSTableView située dans le même Nib.
Je suis en train d'écrire les méthodes de base pour fournir les données aux NSTableView.
Je pensait faire quelquechose du type :
- (int)numberOfRowsInTableView:(NSTableView *)tableView
{
  if(tableView == tableUne)
{//mon code pour la table 1}
  else
{//mon code pour la table 2}
}
tableUne et tableDeux sont des outlet vers les 2 NSTableView.
Mais ça ne marche pas, l'appli plante au lancement.
Il faut faire comment alors ?
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Tu peux peut-être attribuer un Tag à chaque NSTableView, et tester
if ([tableView tag] == tagTableUne)...
J'ai trouvé le problème.
En fait, ma deuxième table affiche le contenu d'un tableau qui est une variable d'instance de la classe qu'affiche ma première table.
Et si aucune ligne n'est sélectionnée dans la première table, le selectedRow renvoie -1. Et ça me faisait planter la méthode - (int)numberOfRowsInTableView:(NSTableView *)tableView de la deuxième table.
Merci pour votre aide en tous cas.
Question subsidiaire : j'ai donc 2 tables. L'une affiche le contenu de la ligne sélectionnée dans l'autre (type iTunes qui affiche les chansons de la liste de lecture sélectionnée).
Dans mon objet contrôleur, j'ai écrit les méthodes source pour les 2 tables. L'affichage de la première (l'équivalent des listes de lecture) ne pose aucun soucis, mais il n'y a rien qui s'affiche dans la deuxième (l'équivalent des chansons).
Je me suis dit que c'est parcequ'il ne savait pas quoi afficher. Mais comment le lui dire ?
Maintenant c'est OK.
Je suis donc revenu à une structure avec dataSource à la mano (et là j'ai mis 4 ou 5 heures pour que tout roule ...).