Conseils pour architecture d'appli

Bonjour,



J'aurais besoin de vos conseils pour l'architecture de mon application.

L'appli consiste en une fenêtre qui peut contenir soit une liste de documents (sorte de bibliothèque) soit un document ouvert.

J'aimerais passer de l'un à  l'autre avec une sorte de navigationcontroller;

Ma question est donc la suivante: pour le moment, j'ai mon document qui hérite de NSDocument et qui a sa fenêtre associée. Comment faire en sorte qu'à  la fois la bibliothèque de documents et le document lui-même soient dans la même fenêtre?



Merci pour votre aide image/smile.png' class='bbc_emoticon' alt=':)' />

Réponses

  • A mon sens, je ferais comme ça :

    Dans le fichier MainMenu.xib, j'ajoute une fenêtre qui contiendra les vue. J'ajoute également une vue qui affichera la bibliothèque.

    Dans le xib du document, le contenu de la fenêtre du document est dans une vue. Et c'est elle que tu affiche dans la fenêtre principale.



    Cela semble simple mais il y a surement des subtilités... J'espère que cela réponds à  ta question.
  • CéroceCéroce Membre, Modérateur
    Hum, ce n'est pas simple, parce que NSDocument gère justement la fenêtre.

    Je ne vois qu'une possibilité: c'est que ce soit ta sous-classe de NSDocument qui gère l'affichage de la bibliothèque ou du contenu du document.



    Tu aurais donc un NSViewController qui contiendrait la bibliothèque, et un NSViewController qui contiendrait le contenu, et tu insérerais le bon dans la fenêtre gérée par le NSDocument.



    P.S.: il y a peut-être un autre moyen de présenter les choses. Jette un oe“il à  Pages, par exemple, qui a le même besoin mais opère différemment.
  • jpimbertjpimbert Membre
    octobre 2012 modifié #4
    Un sidebar, un drawer ou un panel seraient plus appropriés pour contenir une liste de documents.
  • Tu peux également regarder le code source de Fraise ! C'est un éditeur de texte anciennement open-source qui avait une liste de fichier à  gauche et à  droite l'affichage du document sélectionné. Tout cela dans la même fenêtre.
Connectez-vous ou Inscrivez-vous pour répondre.