Domanda

Sto cercando di decidere quale strada prendere per sviluppare la mia Snow Leopard app. In primo luogo, vorrei premettere con le ovvie differenze:

NSTableView può avere più colonne di dati per rappresentare diverse parti dello stesso "elemento" di dati (una riga) in cui NSCollectionView può visualizzare una griglia di dati pure, ma ogni riga + combinata colonna è proprio elemento. Per i miei scopi, presumo ho a che fare con una sola colonna.

  1. Per quanto posso dire, gli elementi NSCollectionView sono NSViews cui tutti devono essere delle stesse dimensioni. Inoltre, a differenza NSTableView, articoli CollectionView vengono copiati nella NSCollectionView invece di essere fornito, se necessario da un dataSource (sono incerto su questo, per favore correggetemi se sbaglio).

  2. NSTableView utilizza NSCells se si decide di personalizzare la visualizzazione delle righe. Come NSCell non è un NSResponder, come si fa a eventi maniglia (se volevo aggiungere qualche tipo di accessorio per la cellula, come come le frecce nel lavoro iTunes (anche se, iTunes è Carbon). Ho visto alcune sottoclassi NSCell in IB che sembrano essere equivalenti di loro fratelli NSControl, ma se voglio avere oggetti MySweetView in un NSCell?).

  3. Entrambi sembrano funzionare circa lo stesso con gli aspetti a Associazioni, giusto?

  4. Infine, NSCollectionView sembra giocare piacevolmente con animazione dei suoi elementi (gli articoli re-organizzare, o filtrandoli per esempio). Può NSTableView fare questo con le sue file?

Tutto il resto devo considerare?

È stato utile?

Soluzione

  1. La differenza è che in una vista tabella, ogni riga è un articolo, e le colonne mostrano diversi aspetti (proprietà) di tale elemento. In una vista raccolta, ogni incrocio riga-colonna è un elemento.
  2. non ho fatto questo, ma provare l'attuazione di tableView:didClickTableColumn: nella vista tabella delegato. Questo metodo è stato introdotto 10.6. Si avrebbe bisogno di ottenere [NSApp currentEvent], e, probabilmente, passare a un metodo nella cella della colonna.
  3. In vista tabella, si associa la colonna; non si associa la vista (non fornire contenuti, in ogni caso, si fa legare la vista per cose come gli indici di selezione). In vista di raccolta, non ci sono colonne (vedi # 1), in modo da associare sempre la vista.
  4. Nessun.

Altri suggerimenti

FWIW, NSTableView è una parte molto vecchia della AppKit, ed è un po 'crufty.

Se siete nuovi alla piattaforma, mi consiglia di ottenere la vostra testa intorno NSCollectionView prima.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top