1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen
  2. Unsere jährliche Weihnachts-Banner-Aktion hat begonnen! Wir freuen uns auf viele, viele kreative Vorschläge.
    Mehr dazu könnt Ihr hier nachlesen: Weihnachtsbanner 2016

    Information ausblenden

NSOutlineView & CoreData

Dieses Thema im Forum "OS X-Developer" wurde erstellt von MacEmmi, 30.01.08.

  1. MacEmmi

    MacEmmi Cox Orange

    Dabei seit:
    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:
     
  2. Amin Negm-Awad

    Amin Negm-Awad Süsser Pfaffenapfel

    Dabei seit:
    01.03.07
    Beiträge:
    665
    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.

    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.
     
  3. MacApple

    MacApple Lord Grosvenor

    Dabei seit:
    05.01.04
    Beiträge:
    3.469
    Hier klicken.

    MacApple
     
  4. Amin Negm-Awad

    Amin Negm-Awad Süsser Pfaffenapfel

    Dabei seit:
    01.03.07
    Beiträge:
    665
    Ah, schön, da ist das Zitat. Ich sage dann mal danke für den OP. ;)
     
  5. Peter Maurer

    Peter Maurer Carmeliter-Renette

    Dabei seit:
    16.03.04
    Beiträge:
    3.274
    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
     
  6. MacEmmi

    MacEmmi Cox Orange

    Dabei seit:
    20.08.07
    Beiträge:
    97
    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...
     
  7. Peter Maurer

    Peter Maurer Carmeliter-Renette

    Dabei seit:
    16.03.04
    Beiträge:
    3.274
    [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. :)
     
  8. MacEmmi

    MacEmmi Cox Orange

    Dabei seit:
    20.08.07
    Beiträge:
    97
    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...
     

Diese Seite empfehlen