2013-08-18 3 views
1

je la configuration des données de base suivantes.NSCollectionView intérieur NSTableView (liaison avec des entités liées)

Data Setup

j'ai créé un contrôleur de réseau appelé « SongsInMedleys » qui est configuré pour contenir le contenu des SongsInMedleys avec un medleyid spécifique.

j'ai créé une vue sur la base Tableview qui sont lient au contrôleur de réseau SongsInMedleys. Cela fonctionne très bien, et j'ai réussi à obtenir l'ensemble du titre de la chanson dans une étiquette en liant à Table Cell View et en utilisant objectValue.withSongs.title dans le chemin de la clé du modèle.

maintenant à ma question:

Je voudrais créer une vue de collection dans la vue de cellule du tableau avec tous les vers de la chanson liés. (objectValue.withSongs.withVerses)

Toute suggestion comment je peux le faire ???

modèle de ce que je suis en train de créer: Model

+0

avez-vous mis en place un treeController, lier son contenu à cette keypath et les mettre en place les liaisons dans cette cellule au contrôleur d'arbre? –

+0

Non, je ne l'ai pas fait. Je vais essayer de voir comment fonctionne le contrôleur d'arbre. –

Répondre

0

Après quelques recherches, j'ai renoncé à essayer d'ajouter une vue de l'intérieur de la collection tableview. Insted j'ai ajouté mes vers manuellement dans la sous-classe de la NSTableCellView

-(void) setObjectValue:(id)objectValue { 

    if (objectValue != nil) 
    { 
    [super setObjectValue:objectValue]; 

    SongsInMedleys *Sim = objectValue; 
    Songs *song = Sim.withSongs; 

    scrollView *scrollview = [[scrollView alloc] initWithFrame:NSMakeRect(10,5,[self frame].size.width-30,145)]; 

    int addverses = 0; 

    for (VersesInSongs *verse in song.withVerses) 
    { 
     if ([verse.lyric length] > 0) { 
      addverses += 1; 
     } 

    } 

    NSView *view = [[NSView alloc] initWithFrame:NSMakeRect(5, 10, ((addverses * (169+5))+5), 140)]; 


    int x = 5; 

    NSSet *Verses = song.withVerses; 
    NSSortDescriptor *sortVerses = [[NSSortDescriptor alloc] initWithKey:@"number" ascending:YES]; 
    NSArray *sortedVerses = [Verses sortedArrayUsingDescriptors:[NSArray arrayWithObject:sortVerses]]; 

    for (VersesInSongs *verse in sortedVerses) 
    { 
     if ([verse.lyric length] > 0) { 
      verseBox *box = [[verseBox alloc] initWithFrame:NSMakeRect(x, 10, 169, 130)]; 

      [box setSong:song]; 
      [box setVerse:verse]; 
      [view addSubview:box]; 

      x = x + 169+5; 
     } 

    } 
    [scrollview setDocumentView:view]; 
    [self addSubview:scrollview]; 
    } 
} 
+0

est la conclusion qu'il n'y a pas moyen de mettre une collection dans une cellule de vue de la table? – tofutim

Questions connexes