Ich frage mich, wie man 3 eine Ansicht wie der Xcode implementieren würde, wird mit der Build-Konfiguration:Implementierung NSOutlineView/NSTableView mit verschiedenen Zellen (und Datentypen) pro Zeile
alt text http://img812.imageshack.us/img812/9467/xcodeoutlineview.png
Wenn Mit einem NSOutlineView/NSTableView mit Bindings und einem NSTreeController/NSArrayController erhalten die Spalten der Ansicht Bindungen zugewiesen, nicht die einzelnen Zellen, aus offensichtlichen Gründen. Wenn jede Zeile in einer Spalte die gleiche Zelle verwendet, ist es ein Kinderspiel. Wenn jedoch jede Zeile (potenziell) ihren eigenen Zelltyp (und damit möglicherweise seine eigene Sammlung von Bindungen) verwendet, dann wird die Sache funky.
Mit Blick auf den Screenshot kann man deutlich sehen, dass die Textfeld Zelle nur eine einzige Bindung für "Wert" benötigt. Während die Pop-up-Knopfzelle mindestens eine für „Inhalt“ benötigt, eine für „content“ und nicht zuletzt eine für „selectedIndex/SelectedObject/selectedValue“ Bindung. Und die Checkbox Zelle benötigt eine Bindung für "Wert" und (wahrscheinlich) eine für "Titel".
Wie würde man dies mit so sauberem (und wenig) Code wie möglich erreichen?
(Oder wie man sich fragen könnte:Wie würde Apple eine haben es getan?)
...
Hier ist, was ich bisher ausprobiert habe:
ich die entsprechenden liefern (kopiert) Zellen über [outlineView: dataCellForTableColumn: item:] und binden Sie sie an die einzelnen Datenmodelle (aus [item_representObject]). Ich kenne die genaue Menge an Daten (< 500 Zeilen), die in der Gliederungsansicht angezeigt wird, so dass eine Zelle pro Zeile nicht zu viel Speicherproblem sein sollte, nein? Ich habe die Daten, um richtig angezeigt über Bindungen (yay!), Aber ich bin nicht in der Lage, einen ihrer Werte zu ändern. O_o Anscheinend geht die Wertänderung einfach nie durch zum Datenmodell. Gibt es mehr als eine einfache [checkboxCell bind: @ "Wert" toObject: rowModel withKeyPath: @ "Wert" Optionen: nil]? (Wie dies scheint ausreichend für bekommen Werte, aber nicht für Einstellung sie entsprechend.)
konnte ich keine Informationen zu diesem Thema finden. Viele Informationen und Hinweise zur Verwendung benutzerdefinierter Zellen pro Spalte, aber keine, um sie pro Reihe zu verwenden. :(
Dies würde einige großartige Sachen für ein Cocoa Tutorial machen, nicht wahr?;)
Es gibt auch NSDictionaryController. Ich weiß nicht, wie weit es dich bringen wird, aber sieh es dir an. –
@Mike Es ist nicht so sehr ein Problem des Controllers, sondern eine der Tabellenansicht, die seine Zellen behandelt. Aber danke trotzdem :) – Regexident
fast 5 Jahre später und das war die einzige Information, die ich über das Mischen von Bindungen mit Datenquellen auf einer Tabelle mit verschiedenen Zellen finden konnte, "Das würde einige großartige Sachen für ein Cocoa Tutorial machen, nicht wahr?" , Oh Ja! – rraallvv