Faut-il un fichier xib par fenêtre ?

sisopetronsisopetron Membre
17:29 modifié dans API AppKit #1
Bonsoir,

Je voudrais, toujours dans le but d'apprendre le cocoa, écrire une petite appli de comptabilité sans prétentions. Cette application utilisera core data et devrait permettre d'afficher plusieurs fenêtres sur le bureau en même temps : une fenêtre pour les recettes, une fenêtre pour les dépenses, une fenêtre pour les emprunts, une autre pour les amortissements, une pour les clients, une pour les fournisseurs et enfin une récapitulative qui regrouperait toutes les écritures quelles qu'elles soient.

1ière question : est-il mieux de créer un fichier xib par fenêtre ou de créer mes 7 fenêtres dans un seul fichier xib ?  Et corolaire : je suppose que j'ai intérêt à  créer une classe à  part pour chaque fenêtre : une classe dépenses, une autre recettes etc.

2ième question : le fait d'ouvrir plusieurs fenêtre ne risque-t-il pas de provoquer des problèmes avec la base de données ?  Une modification dans l'une des fenêtre sera, j'imagine, immédiatement répercutée dans les autres fenêtres ouvertes.  Il n'y a pas de risques de corruption de la base de données ?

3ième question : je voudrais donner un look iTunes 9 à  mes fenêtres.  J'ai lu l'excellent post de Nebuchad34 (http://forum.pommedev.com/index.php?topic=4681.0) à  ce propos sur le forum et j'ai même réussi à  le faire marcher (merci Zoc).  Voici ma question : je suppose qu'il faut utiliser un NSSplitView pour les deux parties de la fenêtre.  Mais quelle est la couleur gris bleu de la pertie de gauche d'iTunes, là  où se trouvent les listes de lecture ?  Cette couleur est bien particulière et, en plus, je n'arrive pas à  changer la couleur de fond de cette view.  En fait je ne trouve pas de méthode pour le faire.  Comment faire donc ?

Merci pour votre aide et surtout vos conseils.

Didier

Réponses

  • CéroceCéroce Membre, Modérateur
    17:29 modifié #2
    dans 1274803112:

    1ière question : est-il mieux de créer un fichier xib par fenêtre ou de créer mes 7 fenêtres dans un seul fichier xib ?

    Tu n'est pas obligé de le faire, mais si tu mets tout le code dans un seul NSWindowController, il va faire 4000 lignes. Apple déconseille de n'avoir qu'un seul XIB parce que "ça évite de charger en mémoire des fenêtres pas encore utilisées", ce qui effectivement permet de gagner du temps au démarrage. Mais la meilleure raison est l'organisation de l'application.

    dans 1274803112:

    Et corolaire : je suppose que j'ai intérêt à  créer une classe à  part pour chaque fenêtre : une classe dépenses, une autre recettes etc.

    La couche "Modèle" est normalement entretenue par Core Data, mais tu devras sans doute créer des objets intermédiaires.

    dans 1274803112:

    2ième question : le fait d'ouvrir plusieurs fenêtre ne risque-t-il pas de provoquer des problèmes avec la base de données ?

    Non, c'est prévu. Nous en avons déjà  parlé ici (la flemme de rechercher le message). Il n'y a qu'un seul Managed Object Context (MOC) par document: c'est l'objet qui représente la base de données. Par contre, il faudra attacher plusieurs fenêtres au document.

    dans 1274803112:

    Voici ma question : je suppose qu'il faut utiliser un NSSplitView pour les deux parties de la fenêtre.  Mais quelle est la couleur gris bleu de la pertie de gauche d'iTunes, là  où se trouvent les listes de lecture ?  Cette couleur est bien particulière et, en plus, je n'arrive pas à  changer la couleur de fond de cette view.

    La partie de gauche est une NSOutlineView. Dans l'inspecteur d'IB, il faut mettre le menu Highlight sur Source List.

    dans 1274803112:

    Merci pour votre aide et surtout vos conseils.

    Core Data n'est pas pour les débutants. L'aborder sans maà®triser les bindings me semble impossible.
    Tu devrais commencer par un projet plus simple.
  • sisopetronsisopetron Membre
    17:29 modifié #3
    Merci Céroce pour tes conseils. 

    Core Data n'est pas pour les débutants. L'aborder sans maà®triser les bindings me semble impossible.
    Tu devrais commencer par un projet plus simple.


    Ouep, tu as sûrement raison.  Je viens de terminer une petite application de rien du tout, j'en ai une autre en cours.  Ces applis me permettent d'apprendre les bindings.  Mon projet de petite appli de compta n'a pas d'autre but que de me permettre d'apprendre Core Data.  Et accessoirement, en voulant lui donner le look iTunes, apprendre à  looker une appli pour la rendre plus sympathique.

    Tout ça est sans prétention aucune et mon seul but est d'apprendre en m'amusant.  Ce n'est pas demain le veille que je pourrai rivaliser avec les meilleurs programmeur mais je m'en fous, tant que je trouve du plaisir à  apprendre la programmation en cocoa. :P
Connectez-vous ou Inscrivez-vous pour répondre.