Differenze tra NSTableView e NSCollectionView
-
11-09-2019 - |
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.
-
Per quanto posso dire, gli elementi
NSCollectionView
sonoNSView
s cui tutti devono essere delle stesse dimensioni. Inoltre, a differenzaNSTableView
, articoli CollectionView vengono copiati nellaNSCollectionView
invece di essere fornito, se necessario da undataSource
(sono incerto su questo, per favore correggetemi se sbaglio). -
NSTableView
utilizzaNSCell
s se si decide di personalizzare la visualizzazione delle righe. ComeNSCell
non è unNSResponder
, 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 sottoclassiNSCell
in IB che sembrano essere equivalenti di loro fratelliNSControl
, ma se voglio avere oggettiMySweetView
in unNSCell
?). -
Entrambi sembrano funzionare circa lo stesso con gli aspetti a Associazioni, giusto?
-
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?
Soluzione
- 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.
- 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. - 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.
- 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.