Ich arbeite an meiner ersten großen Cocoa-App für ein Bachelor-Forschungsprojekt.Mehrere Ansichten und Quellenliste in einer Core Data App
Die Anwendung ist dokumentenbasiert und verwendet Core Data. Eine der Entitäten ist eine abstrakte Entität, Page. Page
ist das übergeordnete Element mehrerer Seitentypen: dh PageWithHeaderAndFooter, PageWithTwoColumns, BasicPage
usw. Page
hat Attribute wie Titel und Autor, die alle Seiten gemeinsam haben. Jede bestimmte Art von Seite hat eine bestimmte Anzahl von Layout-Blöcken (PageWithHeaderAndFooter
hat drei: Kopfzeile, Fußzeile, Körper. BasicPage
hat eine: Körper. Etc.) Zusätzlich definieren alle Page
Unterklassen layoutspezifische Implementierungen bestimmter Methoden. Die andere relevante Entität ist Style
, die das visuelle Aussehen einer Page
definiert. (Denken Sie an Page
s als HTML und Style
als CSS.)
Ich möchte meine App eine iTunes/Mail-ähnliche Quellenliste mit Abschnitten haben. (Ein Abschnitt wäre Pages, der andere wäre Styles.) Ich habe eine ziemlich gute Idee, wie man die unterteilte Quellliste (this was a great help) macht.
jedoch nach Stunden Headbanging und fruchtlos googeln, dann ist hier, was ich nicht herausfinden können:
Seiten und in der Quellenliste aufgeführt Styles, und wenn Sie wählen eine von ihnen, alle relevanten Felder für Dieses Objekt erscheint auf der rechten Seite (hauptsächlich NSTextViews, Popup-Menüs usw.).
Ich legte das heraus und machte alle Bindungen in Interface Builder.
Das Problem ist, wenn meine Quellenliste verschiedene Arten von Seiten enthält, wie bekomme ich eine andere Ansicht zur Anzeige auf der rechten Seite abhängig von der Art der Seite ausgewählt? Zum Beispiel, wenn eine ausgewählt ist, möchte ich nur, was Sie oben sehen: die allgemeine Seite Sachen und eine NSTextView, die dem einen Feld body
von BasicPage
entspricht. Aber wenn ich eine PageWithHeaderAndFooter
wähle, möchte ich die allgemeine Seite Zeug plus drei NSTextViews (eine für Kopf-, Körper-und Fußzeile) anzeigen. Wenn ich eine Style
ausgewählt habe, möchte ich verschiedene Pop-up-Menüs, Farbvertiefungen usw. anzeigen
Für die Seiten sprechen wir nur über eine oder mehrere NSTextViews, von denen jede einem String-Attribut der jeweiligen Entität entspricht.
Wie würden Sie das tun?
Vielen Dank für Ihre Hilfe!