Sollte ich NSTableView verwenden?
Ja.
Wie wäre es mit NSCollectionView?
Ja.
Es hängt davon ab, was Sie tun. Wenn Sie eine eindimensionale Auflistung von Objekten anzeigen, insbesondere in einer Form, die der Symbolansicht des Finders ähnelt, möchten Sie NSCollectionView anzeigen. Wenn Sie eine Tabelle anzeigen, in der jede Spalte einen Aspekt jeder Zeile anzeigt (z. B. Zeilen = Personen; Spalten = Name, Titel, Abteilung usw.), möchten Sie NSTableView.
In einer NSCollectionView können Sie die minimale und maximale Elementgröße als eine Eigenschaft der Ansicht festlegen, und Sie können die Größe jedes Elements als eine Eigenschaft des Elements festlegen.
In einer NSTableView können Sie die Höhe einer Zeile festlegen, indem Sie den Delegaten der Tabellenansicht und reagieren auf tableView:heightOfRow:
. Wenn Sie die übliche Zeilenhöhe zurückgeben möchten, fragen Sie in der Tabellenansicht nach rowHeight
und geben Sie das zurück; Wenn Sie eine ungewöhnliche Höhe zurückgeben wollen, tun Sie dies.
Persönlich finde ich NSTableView einfacher zu arbeiten. Sie können es am meisten einrichten, wenn nicht ganz in IB; Über die einzige Zeit, die Sie benötigen, um Code zu schreiben, ist für benutzerdefinierte Zeichnung, Doppelklick-Aktionen, oder ja, variable Zeilenhöhen.
Für Ihre To-Do-Liste Beispiel würde ich eine NSTableView verwenden, mit einer Checkbox-Schaltfläche Zelle in einer Spalte für die "fertig" -Eigenschaft.
Mehr zu dem Punkt, Sie müssen nichts tun, um sie zu bekommen. Sie sind standardmäßig aktiviert und Sie können sie in IB deaktivieren (oder ihre Bezeichnungen ändern). –