Frage

Was ist der beste Weg, um ein NSTableView Einstellungen speichern für jedes Element in seinem übergeordneten NSTreeController (idealerweise seine automatische Speicherung Fähigkeit nutzen)? Ich bin im Grunde separat suchen, um die Art und Weise iTunes speichert die Spalteneinstellungen für jede Wiedergabeliste zu reproduzieren.

Ich habe eine Menge von Spalten bekommt, aber, und würde nicht wollen, manuell jede einzelne Spaltengröße speichern, etc. Ich bin auch Core Data verwenden und würde eine Lösung liebe mein vorhandenes Datenmodell verwendet, um fortbestehen diese Informationen.

Aktualisieren

fand ich einige Code ( ein Category aus Daniel Jalkut ), die es einfach zu speichern und lesen eine NSDictionary Darstellung einer NSTableView Spalteneinstellungen macht. Also habe ich ein binäres Attribut in meinem Core Data Einheit geschaffen, die nun die Einstellungen des für diese Entität Ansicht speichert.

Was ich möchte in der Lage sein, abrufen zu tun ist, automatisch die Einstellungen wie jede Instanz des Unternehmens ausgewählt. Ich hatte auf meinem NSTreeController tun dies mit Schlüsselwert-Beobachtung versucht, aber es hat leider nicht geben Sie mir eine angemessene Benachrichtigung. Ich mag den Artikel wissen, ich bin Schale weg, so dass ich die Einstellungen für den vorherigen Knoten speichern, bevor sich mit dem neuen Knoten Einstellungen überschrieben werden.

Ich habe versucht, zu beobachten @"selection", @"selectedObjects" und @"selectedIndexPaths", mit jedem options Argumente, das ich finden konnte, und keiner von ihnen schien richtig zu arbeiten. Ich erhalte Meldungen zu den richtigen Zeiten, aber ohne nützliche Informationen im "change" Wörterbuch, dass die Eigenschaftsänderung sendet.

War es hilfreich?

Lösung

Ich entschied sich für die NSTableView + RSAutosaving Kategorie verknüpfen ich oben (mit freundlicher Genehmigung von Daniel Jalkut und Red Sweater Software), mit einigen Modifikationen auch zu speichern, ob Spalten versteckt sind. Ich speichere diese NSDictionary als binäres Datenattribut in meiner Core Data übergeordneten Entität (und ich erstellt, um eine Klein separat speichere die Sortierinformationen).

Dann habe ich meine Fenster-Controller auf zwei Mitteilungen von meinem NSOutlineView hören. Auf der @"NSOutlineViewSelectionIsChangingNotification" Mitteilung ist der NSTreeController der Auswahl der alte Knoten. Ich speichere die NSTableView Einstellungen zu diesem Zeitpunkt. Dann wird auf der @"NSOutlineViewSelectionDidChangeNotification" Benachrichtigung, las ich in den Einstellungen von dem neuen Knoten. Dies funktioniert wie ein Charme.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top