2

J'ai une NSOutlineView agissant comme une liste de source pour mon application, et mon modèle de données est fait avec des données de base. Je voudrais utiliser des reliures (si possible) pour coller ces choses ensemble comme suit:NSOutlineView avec des liaisons pilotées par des données de base

J'ai trois entités principales dans mon modèle, pour l'exemple, appelons-les "Stores", "Cars" et "People" . Mon objectif est d'avoir la vue de plan a 3 "groupes" (nœuds extensibles, comme PLAYLISTS dans iTunes), chaque groupe représentant et listant une de mes entités, et aussi j'ai trois boutons au fond de mon fenêtre à "Ajouter un magasin", "Ajouter une voiture", etc, que je voudrais avoir branché pour effectuer cette action. Jusqu'à présent, dans la plume de ma fenêtre, j'ai un TreeController qui est lié à mon instance NSManagedObjectContext de mon contrôleur de fenêtre, mais je n'arrive pas à comprendre comment lier et remplir correctement la vue de contour depuis TreeController.

Est-ce possible avec les fixations? J'ai vu un tutoriel où un deuxième modèle d'objet géré est créé, avec des entités pour les noeuds de contour, mais certains commentaires sur l'article ont indiqué que c'était une mauvaise idée. Je ne sais pas vraiment comment procéder, toute aide serait merveilleuse!

Répondre

2

Essayez le Cocoa Bindings Programming topics: Providing Controller Content section

Ce que je faisais était de créer des classes personnalisées pour mes entités, et a ajouté isLeaf propriétés à eux. Pour le niveau supérieur (magasins, voitures, personnes), je renvoie no. Pour les noeuds feuilles (une voiture, une personne, etc.), je renvoie YES.

Le niveau le plus élevé doit avoir une relation à plusieurs avec les nœuds feuille, j'ai appelé cela children. Dans Interface Builder, j'ai défini le mode NSTreeController sur Entity, nom: Groups. Il est lié à managedObjectContext. Dans le Key Paths j'ai mis l'attribut Children à children, et Leaf à isLeaf.

+0

Désolé, je veux dire que les nœuds de niveau supérieur dans la vue Structure seraient représentés par une entité appelée 'Groupes', est-ce correct? – jbrennan

+0

Je dirais une entité appelée 'Group' dont les valeurs de nom seraient' Cars', 'Stores',' People', oui. Cette entité a une relation avec les autres entités, appelée «enfants». Vous pouvez utiliser vos entités existantes, mais j'ai créé des sous-classes personnalisées de 'NSManagedObject' pour qu'elles ajoutent les propriétés 'isLeaf'. Je pourrais poster mon application de démonstration si vous êtes intéressé – catsby

+0

Si cela ne vous dérange pas de poster ce serait fantastique, juste pour que je puisse regarder comment tout est branché :) – jbrennan

Questions connexes