Créer une NStableView par le code

laurrislaurris Membre
16:25 modifié dans API AppKit #1
bonjour,

Je voudrais savoir si certains d' entre vous ont déjà  créé une NSTableView programmatiquement, sans l' aide de IB. J' ai cheché sur les différentes listes cocoa et sur ce forum et je n' ai rien trouvé, mais j' ai peut-être mal cherché...
j' ai bien essayé la méthode classique pour ajouter des vues, - c' est à  dire initwithFrame: et puis addSubview: sur la vue de réception- . mis je n' obtiens qu' un rectangle blanc.
Je suppute que le problème vient du fait qu' une NSTableView doit être contenue dans une  NSScrollView qui elle même contient d' autres vues ... mais je n' en sais pas plus.
Si vous avez une idée où une adresse à  m' indiquer, merci d' avance .


Réponses

  • 16:25 modifié #2
    Première piste: tu as pensé à  ajouter des colonnes, il faut certainement
    le faire à  la main?

    Quand tu crées des contrôles par code, il faut généralement tout reparamétrer à  la main, car les réglages par défaut sont des plus sommaires.

    Mais sinon, ce qui est aussi possible est de faire une "tableview type" dans IB, que tu mets dans une vue, qui est elle même reliée à  un outlet. La vue est rangée dans les instances, au même titre que le File's owner. Et quand tu veux en ajouter une par code, tu fais une copie en passant par les NSCoder:
    NSView* v = [NSUnarchiver unarchiveObjectWithData:[NSArchiver archivedDataWithRootObject:vueQuiContientLaTable]];
    


    Mais dans ce cas, il faut refaire tous les connexion à  la main. Pour accéder à  la table, ça devrait être:
    [[[v subviews] objectAtIndex:0] documentView]
    
  • laurrislaurris Membre
    16:25 modifié #3
    Merci Renaud. Je vais essayer de rajouter des colonnes (mais ça m'étonne qu' il n' y ait pas au moins 1 colonne par défaut).
    Sinon, pour ton idée de réinjecter la vue à  partir d' un nib, ça serait effectivement le plus efficace. Ma seule appréhension vient du fait que je compte utiliser cette NSTableView dans un plugin WebKit pour pouvoir l' afficher dans une page html. Je ne sais pas si on peut charger un nib à  partir d' un plugin ... mais après tout ya pas de raison et je vais quand même essayer de ce pas !
Connectez-vous ou Inscrivez-vous pour répondre.