Schritt für Schritt - Entwickeln für OS X und iOS
Schritt für Schritt - Entwickeln für OS X und iOS
ToDo-Detailansicht

Der NSTableView zeigt bisher nur einige, und nicht alle, Eigenschaften einer Aufgabe an. Um aber mit der Anwendung arbeiten zu können, ist es nötig, alle Felder zu sehen und diese auch bearbeiten zu können. Was dem Programm fehlt, ist eine Detailansicht wie sie in der folgenden Abbildung zu sehen ist. Als Steuerelemente werden nur Textfelder und Label verwendet. Das Textfeld für die Notiz ist allerdings ein Wrapping Text Field, damit auch mehr als eine Zeile Text angezeigt werden kann.
stacks_image_CED55CA8-4CEC-4FF2-A054-17009C06181C
Auch die Textfelder müssen mit dem ArrayController verbunden werden. Das funktioniert wie beim dem NSTableView über die Binding-Einstellungen im Inspector. Der einzige Unterschied ist, dass ein Textfeld nur immer das in der Tabelle ausgewählte Objekt anzeigen soll, daher müssen Sie im Inspector selection als Controller Key wählen. Für die Tabelle war diese Einstellung noch arrangedObjects.
Unter selection, als die Selektion oder Auswahl, versteht man die Aufgabe, die in der Tabelle ausgewählt ist. Das selektierte Objekt wird dann automatisch mit der Detailansicht synchron gehalten.
Binden Sie zuerst nur ein Textfeld, die Überschrift, um die nötigen Arbeitsschritte zu verinnerlichen.
stacks_image_CAEEB18E-D184-48D5-A843-4F532009694F
Wenn Sie jetzt das Programm ausführen und eine neue Aufgabe hinzufügen, erscheint die Überschrift nicht nur in der Tabelle, sondern auch im zugehörigen Textfeld. Sie können dieses Textfeld sogar bearbeiten und die Überschrift ändern. Sobald Sie das Textfeld mit der Tab-Taste verlassen oder die Eingabe mit Return bestätigen, wird auch der die Überschrift in der Tabelle aktualisiert.
stacks_image_96B68A41-E3A1-4D86-95D2-CACDB82A4F11
Binden Sie jetzt auch die restlichen Eigenschaften der Klasse an die verbleibenden Textfelder.

Ist kein Objekt in der Tabelle vorhanden, kann auch kein Eintrag ausgewählt sein. Das ist in diesem konkreten Fall ungünstig, da die Bindung von der Auswahl (selection) abhängig ist. Das ist aber nicht weiter schlimm, denn die Textfelder zeigen automatisch den Text „No Selection“ in grauer Schrift an.

Dieser Text ist der so genannte No Selection Placeholder, eine Eigenschaft, die mit dem Inspector geändert werden kann. Wenn Sie mögen, können Sie den Platzhalter auf „Keine Auswahl“ ändern. Als Alternative können Sie aber auch ein Leerzeichen eingeben, wenn bei einer fehlenden Auswahl nichts angezeigt werden soll.
stacks_image_BAC3D044-DFCF-4B60-8F58-86DC84CF1893