2010-11-18 7 views
1

Dank this post kann ich jetzt eine Tabelle mit verschiedenen Zeilenhöhen auf dem iPhone erstellen. (Mit UITableView)NSCollectionView mit verschiedenen Höhen: Wie mache ich das auf dem Desktop?

Wie das auf einem Mac?

Sollte ich NSTableView verwenden? Wie wäre es mit NSCollectionView? Ich habe das Gefühl, dass NSTableView zu kompliziert ist - zumindest viel komplizierter als UITableView. Ich meine, ich brauche nicht alle Header und so.


Hier ist ein Beispiel. Stellen Sie sich eine Todo-Liste vor. Manche Todos können ziemlich lang sein und passen nicht in eine Reihe. Was würdest du auf iPhone, iPad und Mac machen?

Antwort

1

NSTableView ist das äquivalente Objekt zu UITableView, obwohl es etwas komplizierter ist. Wenn Sie keine Header benötigen, müssen Sie diese sowieso nicht anzeigen.

+0

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). –

1

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.

Verwandte Themen