Statische NSTableView mit voreingestellten Zeilen

9

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?

    
BadmintonCat 14.06.2015, 11:29
quelle

1 Antwort

1

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.

    
mangerlahn 04.09.2015, 23:28
quelle