• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Viele hassen ihn, manche schwören auf ihn, wir aber möchten unbedingt sehen, welche Bilder Ihr vor Eurem geistigen Auge bzw. vor der Linse Eures iPhone oder iPad sehen könnt, wenn Ihr dieses Wort hört oder lest. Macht mit und beteiligt Euch an unserem Frühjahrsputz ---> Klick

NSOutlineView & CoreData

MacEmmi

Cox Orange
Registriert
20.08.07
Beiträge
97
Hallo,

ich habe folgendes Problem:
am liebsten würde ich den Expanded-Status der einzelnen Items im OutlineView speichern und beim nächsten Aufruf des Programms nochmal herstellen. Leider funktioniert das mit Standardmitteln nicht, wenn man CoreData verwendet. Ich hab auch schon nach einer Lösung gesucht - das Problem ist bekannt; eine gute Lösung hab ich aber nicht gefunden. Weiß jemand wie's geht?

Alternativ hab ich mir überlegt am Anfang einfach alle Items zu expandieren. Die Frage ist nur: wann? Im awakeFromNib ist der OutlineView noch leer. Genauso in windowDidUpdate etc. etc.
Gibt es einen Zeitpunkt zu dem man weiß, dass alles Views im Window mit dem Zeichnen fertig sind?

Bin ziemlich ratlos...:eek:
 

Amin Negm-Awad

Süsser Pfaffenapfel
Registriert
01.03.07
Beiträge
665
Hallo,

ich habe folgendes Problem:
am liebsten würde ich den Expanded-Status der einzelnen Items im OutlineView speichern und beim nächsten Aufruf des Programms nochmal herstellen. Leider funktioniert das mit Standardmitteln nicht, wenn man CoreData verwendet. Ich hab auch schon nach einer Lösung gesucht - das Problem ist bekannt; eine gute Lösung hab ich aber nicht gefunden. Weiß jemand wie's geht?
Wenn es eine doucment-based Application (DBA) ist, würde ich dein Document-Bundle machen und das dort hinterlegen.

Ist es en non-DBA, kommt es halt als Datei in den Application Support.

Alternativ hab ich mir überlegt am Anfang einfach alle Items zu expandieren. Die Frage ist nur: wann? Im awakeFromNib ist der OutlineView noch leer. Genauso in windowDidUpdate etc. etc.
Gibt es einen Zeitpunkt zu dem man weiß, dass alles Views im Window mit dem Zeichnen fertig sind?

Bin ziemlich ratlos...:eek:
IIRC werden die Zugriffe des Table-Views auf das CD.Model verzögert. Das Problem is auch irgendwo in der Doku beschrieben. Abe bitte frag' mich nicht wo. *g*

Du solltest vielleicht an eine Subclass des Outline-Views denken und dort auf einen Methodenaufruf warten. Zu Verstehenszwecken empfiehlt es ich hier, einfach di Kandidaten zu überschreiben und nach einem Log die Methode des Super aufzurufen. So bekommt man eine Einsicht in die zeitlichen Abläufe.
 

Peter Maurer

Pommerscher Krummstiel
Registriert
16.03.04
Beiträge
3.077
Leider funktioniert das mit Standardmitteln nicht, wenn man CoreData verwendet.
Sei froh. Die eingebaute Auklapp-Merkfunktion hat einen ziemlich weichen Keks, was auch bei Nicht-CoreData-Programmen oftmals zu Eigenbau-Loesungen fuehrt. Und da sprech' ich nicht nur aus eigener Doofheit Erfahrung, sondern berichte auch von Erfahrungen anderer, mit denen ich mich darueber unterhalten hab'.

Meine Standardloesung fuer dieses Problem, ganz CoreData-unspezifisch, ist jedenfalls aehnlich wie Amins: Ich merke mir den Klappzustand in einer externen Liste eindeutiger Kennzeichnungen (z.B. UUIDs). Ob man das dann mit den Daten oder mit den Programmeinstellungen sichert, das ist allerdings schon fast eine religioese Frage. :D
 

MacEmmi

Cox Orange
Registriert
20.08.07
Beiträge
97
Zitat von MacApple
Hier klicken.

Jo danke, hatte ich inzwischen per Zufall auch schon gefunden. Ich merk mir die Zustände auch in einer Liste in den UserDefaults.

Eine Sache finde ich allerdings merkwürdig und frage mich, ob man das irgendwie abstellen/kontrollieren kann:
Wenn man im OutlineView ein Item aufklappt, ändert sich die Breite der ersten Spalte (wird größer). Das muss man dann jedesmal von Hand wieder korrigieren. Ich hab bisher nichts gefunden, wo man das abstellen kann...
 

Peter Maurer

Pommerscher Krummstiel
Registriert
16.03.04
Beiträge
3.077
[NSOutlineView setAutoresizesOutlineColumn:]

Merke: Die Apple-eigene Cocoa-Dokumentation ist gar nicht so schlecht. Es steht so manches drin, und es lohnt sich, sie mal von vorne bis hinten zu lesen. Dann kann man sich zwar nur wenig merken, aber man gewinnt ein Gefuehl dafuer, wo man nachschauen muss. :)
 

MacEmmi

Cox Orange
Registriert
20.08.07
Beiträge
97
Merke: Die Apple-eigene Cocoa-Dokumentation ist gar nicht so schlecht. Es steht so manches drin, und es lohnt sich, sie mal von vorne bis hinten zu lesen.
Jo, wer lesen kann ist klar im Vorteil. Keine Ahnung warum ich das gerade überlesen habe. Die Cocoa Doku von vorne bis hinten durchlesen wäre sicher interessant, zeitlich aber kaum machbar. Vielleicht im Sommer wieder, abends im Garten bei einem schönen Pils...