3 Fragen zur SourceList eines NSOutlineViews

  • 3 Fragen zur SourceList eines NSOutlineViews

    Hallo,

    ich habe 3 Fragen zum NSOutlineView als SourceList.

    Ich habe eine CoreData Entity "SourceItem" mit dem Attribute title und den 2 Beziehungen children und parent. Mittels TreeController werden die Objekte in der SourceList angezeigt.

    Es gibt immer 4 Root Objekte, die auch die einzelnen Gruppen (Delegate, isGroupItem) darstellen. Die Anzahl der jeweiligen Kinder variiert von 0 bis n.

    Jetzt würde ich gerne folgendes machen. Eines der Root Objekte möchte ich immer ausgeklappt haben. Das zusammenklappen kann ich ja mit den collapse Delegates kontrollieren, doch
    - Wie krieg ich das Dreieck vor dem Titel weg?

    Ich würde gerne die Root Objekte die keine Kinder haben ausblenden. Was ist da die beste Möglichkeit? Bei 0 Kindern löschen und erst bei nem Kind wieder erstellen oder kann man das auch anders über ein Delegate oder so lösen?

    Die dritte Frage bezieht sich auf die Formattierung der Gruppen. Ich würde die Schrift Formatierung noch gerne woanders benutzen. Gibt es da über Cocoa eine passende Lösung oder kann ich irgendwo nachgucken welche Formattierungen das im einzelnen sind?

    Danke für eure Hilfe.

    Gruß
    Konrad
  • Hallo,

    habe folgende Methoden überschrieben um das Zusammenklappen zu unterdrücken und um das Dreieck auszublenden. _emptyTriangle ist dabei ein Bild der Größe 0:

    Quellcode

    1. - (BOOL)outlineView:(NSOutlineView *)outlineView
    2. shouldCollapseItem:(id)item {
    3. item = [item representedObject];
    4. if([[item valueForKey:@"title"] isEqual:@"bla"])
    5. return NO;
    6. return YES;
    7. }
    8. - (void) outlineView:(NSOutlineView *)outlineView
    9. willDisplayOutlineCell:(id)cell
    10. forTableColumn:(NSTableColumn *)tableColumn
    11. item:(id)item {
    12. item = [item representedObject];
    13. if([[item valueForKey:@"title"] isEqual:@"bla"]) {
    14. [cell setImage:_emptyTriangle];
    15. [cell setAlternateImage:_emptyTriangle];
    16. }
    17. }
    Alles anzeigen


    Die einzige Frage die jetzt noch bleibt ist, wie kann ich ein "normales" Label so formattieren dass es genauso aussieht wie ein GroupItem?