Frage

Ich versuche, welcher Weg zu entscheiden, für die Entwicklung meines Snow Leopard App zu nehmen. Erstens, ich sollte mit den offensichtlichen Unterschieden Vorwort:

NSTableView kann, die verschiedenen Teile des gleichen „Elements“ von Daten mehr Spalten von Daten (eine Zeile), wo NSCollectionView sowie ein Raster von Daten anzeigen kann, aber jede Zeile + Spalte Combo ist sein eigenes Element. Für meine Zwecke, nehme ich mit einer einzigen Spalte zu tun habe.

  1. Soweit ich das beurteilen kann, NSCollectionView Artikel sind NSViews, die alle die gleichen Abmessungen aufweisen müssen. Auch im Gegensatz zu NSTableView sind Kollektion Elemente in dem NSCollectionView kopiert statt nach Bedarf durch eine dataSource vorgesehen ist (ich bin unsicher darüber, bitte korrigieren Sie mich, wenn ich falsch liege).

  2. NSTableView verwendet NSCells wenn Sie die Anzeige der Zeilen anpassen entscheiden. Als NSCell kein NSResponder ist, wie ein Griff Ereignis tut (wenn ich irgendeine Art von Zubehör für die Zelle, wie, wie die Pfeile in iTunes Arbeit hinzufügen wollte (obwohl iTunes ist Kohlenstoff). Ich habe einige NSCell Subklassen gesehen in IB, die Mittel ihrer NSControl Brüder zu sein scheinen, aber was, wenn ich MySweetView Objekte in einem NSCell haben wollen?).

  3. Beide scheinen in etwa gleich mit Hinsicht Bindungen zu arbeiten, richtig?

  4. Schließlich NSCollectionView erscheint mit Animation seiner Elemente gut zu spielen (zum erneuten Anordnen von Elementen, oder sich zum Beispiel Filterung). Kann NSTableView mit seinen Reihen tun?

Alles andere sollte ich beachten?

War es hilfreich?

Lösung

  1. Der Unterschied hier ist, dass in einer Tabellenansicht ist jede Zeile ein Element, und die Spalten zeigen verschiedene Aspekte (Eigenschaften) dieses Elements. In einer Sammlung Ansicht ist jede Zeilen-Spalten-Kreuzung ein Element aus.
  2. Ich habe dies nicht getan, sondern versuchen, tableView:didClickTableColumn: in Ihrem Tabellenansicht Delegierten zu implementieren. Diese Methode ist neu in 10.6. Sie müßten [NSApp currentEvent] bekommen, und es wahrscheinlich in der Spalte der Zelle an eine Methode übergeben.
  3. Mit einer Tabellenansicht, binden Sie die Spalte; Sie binden nicht die Ansicht (nicht Inhalte, sowieso, Sie tun, um die Ansicht für Dinge wie Auswahl-Indizes binden). Mit einer Sammlung Ansicht gibt es keine Spalten (siehe # 1), so dass Sie immer die Ansicht binden.
  4. Nein.

Andere Tipps

FWIW, NSTableView ist ein sehr altes Teil des AppKit, und es ist ein bisschen crufty.

Wenn Sie auf die Plattform neu sind, würde ich empfehlen, den Kopf immer um NSCollectionView zuerst.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top