Ist es möglich, ein NSTableView
im Interface Builder mit einer voreingestellten Anzahl von Zeilen zu erstellen, so dass die Tabelle als Formular verwendet werden kann?
Ich habe eine Ansicht, die eine Form verschiedener Beschriftungen und Textfelder erfordert. Ich habe versucht, einzelne Etiketten und Textfelder zu verwenden, aber es sieht schlecht aus. Gleiches gilt für NSForm
, was zusätzliche Einschränkungen für das Layout und den Zelleninhalt mit sich bringt.
Eine Tabellenansicht sieht also sehr gut aus wie eine Formularansicht. Am liebsten würde ich sieben TextTableViewCell
s in eine statische NSTableView
in IB ziehen und Beschriftungen in der ersten Spalte setzen und Werte in den Zeilen der zweiten Spalte dynamisch setzen.
Aber wenn ich es baue, sind meine sieben Reihen verschwunden. Wie kann ich ein NSTableView
als statisch handeln?
Wie @Anc Ainu darauf hingewiesen hat, ist es ab OS X 10.10 möglich, in OS X statische tableViews zu verwenden. Sie müssen die usesStaticContents
-Eigenschaft auf NSTableView
setzen, damit sie sich wie eine statische tableView auf iOS verhält. Laut der Dokumentation:
Eine statische Tabelle ist nicht auf eine Datenquelle angewiesen, um die Anzahl der Zeilen anzugeben. Der Inhalt einer statischen Tabellenansicht wird zur Entwurfszeit festgelegt und kann bei Bedarf programmgesteuert geändert werden. In der Regel ändern Sie den Inhalt einer statischen Tabellenansicht nicht, nachdem Sie sie festgelegt haben.
In Xcode werden alle Zeilen, die Sie zu einer statischen Tabelle hinzufügen, in der entsprechenden Schreib- oder Storyboard-Datei gespeichert und zur Laufzeit mit dem Rest der Tabelle geladen. Sie können Tabellenzeilen mithilfe der Methode insertRowsAtIndexes: withAnimation: methodisch zu einer statischen Tabellensicht hinzufügen. Wenn Sie Zeilen programmgesteuert hinzufügen, muss der Delegat für die Tabellenansicht die Methode "tableView: viewForTableColumn: row:" implementieren, um die entsprechende Ansicht für alle neuen Zeilen bereitzustellen. Sie können Zeilen auch jederzeit mit der Methode removeRowsAtIndexes: withAnimation: entfernen.
Bitte beachten Sie, dass diese Eigenschaft für OS X 10.10 und höher verfügbar ist.
Tags und Links macos cocoa nstableview interface-builder