Core Data, NSBrowser, NSTreeController & Bindings...

cestlogiquecestlogique Membre
17:32 modifié dans API AppKit #1
Hello!

Comment faire fonctionner tout ça ensemble??

Prenons un exemple:

Un calendrier (ou plusieurs) qui contient plusieurs années, chaque année contient 12 mois, chaque mois 31 jours maximum.

Le calendrier a un nom, l'année un numéro d'ordre (2004), le mois un numéro d'ordre (1) et un nom ("janvier"), le jour idem (1; "lundi 1er") plus une date. [Le but n'est pas de retrouver des valeurs avec les méthodes de NSCalendarDate...]

Comment créer une simple interface avec un NSBrowser qui affiche les  années dans la 1re colonne, les mois dans la 2e, les jours dans la 3e?? :why?:

Si un bindingologue pouvait m'offrir la consultation sur ce point ce serait génial!

Je joins un projet avec le data model déjà  créé! :D

Merci!! :o

[Fichier joint supprimé par l'administrateur]

Réponses

  • cestlogiquecestlogique Membre
    17:32 modifié #2
    Bon, je suis plutôt dépité de voir que comme moi personne ne voit comment faire! Sniff. :'(

    On se demande pourquoi Apple ne met pas à  jour sa doc et ses tuto pour montrer comment utiliser chaque élément d'interface avec les bindings!
  • aranaudaranaud Membre
    17:32 modifié #3
    Une piste http://cocoadevcentral.com/articles/000085.php. Mais il est vrai que les exemples manquent.
  • ClicCoolClicCool Membre
    17:32 modifié #4
    Oups voila voila (j'ai bien peu de temps en ce moment dsl)

    Le principal problème de ton model est qu'il utilise plusieurs entitées et surtout qu'elles ne répondent pas toutes au même KVC accesseurs.

    Un NSBrowser (et les TreeCTRL), par essence, gère des objets de même nature. Un peu comme dans le finder où tous les éléments (fichier, dossier, alias) sont tous de même nature même s'il contiennent les données nécessaires pour identifier les différences existantes dans les objets qu'ils décrivent.

    Donc il vaudrait mieux que tu crées une entité genre CalendarItem avec comme Attribut (réél ou virtuel "calculé à  la volée"), par ex.: Libelle et comme Relationschip par children (to many) sans oublier la relation inverse parent (to one).
    Rien empèche d'éventuellement créer des entités Année, Mois, Joures ayant comme etntité parente CalendarItem.
    Ou alors gardes tes entitées mais donnes leur des nom d'attributs et Relationschip identiques pour tout ce qui doit être géré par le TreeCTRL.

    Compte tenu de la nature de ce que tu envisages, il parraà®t souhaitable que tu sous-classe NSManagedObject pour, par ex., configurer un nouvel item ajouté en fonction de sa place dans le hierarchie (niveau) et en faire donc un Item décrivant au choix une Année, un Mois, un Jour, un RdV etc...

    En résumé: en respectant "l'unicité" des accesseurs ça roule parfait pour un NSBrower (ou OutlineView) bindé à  un TreeCTRL. Juste quelques trucs à  pas loupés dans les paramétrages sous IB mais assez intuitifs

    J'espère avoir éclairé ta lanterne.
  • cestlogiquecestlogique Membre
    17:32 modifié #5
    dans 1117275686:
    J'espère avoir éclairé ta lanterne.


    Oui, merci Cliccool, et désolé de ne pas avoir répondu avant...!
Connectez-vous ou Inscrivez-vous pour répondre.