Programmieren mit Swift - Für macOS und iOS
Programmieren mit Swift - Für macOS und iOS
Binden des NSTableView

Als abschliessender Schritt fehlt nur noch die Verbindung der Tabelle, also des NSTableView, mit dem ArrayController. Dazu sind nur wenige Handgriffe nötig, und da alle Objekte richtig vorbereitet wurden, ist es wirklich sehr einfach.

Klicken Sie zunächst mehrfach auf die erste Spalte (Datum) der Tabelle, bis sie ausgewählt ist. Wie das auszusehen hat, können Sie auf dem folgenden Abbildung erkennen.
stacks_image_32E3A754-C905-4C98-A02E-41B59115A135
Öffnen Sie nun den Inspector in der Gruppe Binding und erweitern Sie den Unterpunkt Value. Aktivieren Sie die Checkbox Bind to. Gebunden werden soll die Spalte an den ToDoItemsArrayController, den Sie in der nebenstehenden ComboBox auswählen können.
Der Controller Key ist arrangedObjects, der Wert, der schon automatisch ausgewählt wurde. Mit arranged Objects sind alle Objekte gemeint, die vom Array Controller verwaltet werden. Im Gegensatz zu einem Textfeld kann eine Tabellenspalte gleichzeitig die Daten mehrerer Objekte darstellen.
Was allerdings noch fehlt ist die zugehörige Eigenschaft, die in der Spalte angezeigt werden soll. In die Spalte Datum gehört natürlich die Eigenschaft timestamp und da Sie diese als Keys für den ArrayController hinzugefügt haben, können Sie sie nun aus der ComboBox Model Key Path auswählen.
Damit ist die Spalte an die Eigenschaft timestamp des ArrayController gebunden. Wiederholen sie den Vorgang für die anderen beiden Spalten und verwenden Sie als Model Key Path die Eigenschaften priority und headline.
stacks_image_D4B0457A-EDAF-42B0-801B-F0592CE48F53
Wird es aber funktionieren? Das lässt sich ganz schnell herausfinden, in Sie Ihre Arbeit speichern und dann den Übersetzungsvorgang in Xcode starten. Klicken Sie, auch mehrfach, auf die Plus-Schaltfläche, um dem ArrayController neue Objekte vom Typ ToDoItem hinzuzufügen. Diese werden automatisch im NSTableView angezeigt, ohne dass für die Darstellung und Aktualisierung der Tabelle weiterer Programmcode geschrieben werden musste. Das ist einer der großen Vorteile von Cocoa-Binding. Model und View werden automatisch synchron gehalten, ohne das man diese Funktionalität programmieren muss.
stacks_image_621DF08D-D11C-4560-97C4-2D0C2E9699F4