Come implementare una barra laterale simile a Mail / iTunes / Finder / etc in Cocoa / IB?

StackOverflow https://stackoverflow.com/questions/241507

  •  04-07-2019
  •  | 
  •  

Domanda

Penso che il titolo praticamente dice tutto ... Sto cercando di implementare un'interfaccia simile alla barra laterale standard OS X utilizzata in tutti i programmi sopra menzionati, e mi chiedo se qualcuno abbia qualche idea su come il modo più semplice per farlo, vale a dire su quale vista utilizzare per il riquadro di selezione a sinistra. Davvero non penso di aver nemmeno bisogno del componente gerarchico come si vede nelle app di apple, ho solo bisogno di un elenco di scelte piatte di bell'aspetto che determinano cosa viene mostrato nel riquadro di destra.

L'ovvio inizio è una vista con layout diviso verticale, ma oltre a ciò non sono del tutto sicuro di dove andare. Una vista raccolta con una sola colonna o qualcosa del genere?

È stato utile?

Soluzione

Ho realizzato alcune applicazioni che utilizzano una configurazione simile.

In genere utilizzo un NSSplitView, con una singola colonna NSTableView nel riquadro di sinistra. Non dimenticare di disabilitare le intestazioni e renderlo visualizzato come " Vista sorgente " stile.

Se vuoi i triangoli di rivelazione, allora vorrai usare NSOutlineView invece di NSTableView, ma almeno per la prima volta, mi atterrerei a un semplice NSTableView.

Un modello che uso anche è di rendere NSTableView leggermente più corto di NSSplitView e avere dei pulsanti in basso (aggiungi, elimina, ecc.). Di solito ho creato il programma attorno a Core Data, quindi è facile collegarli a metodi per creare / eliminare oggetti, quindi associare NSTableView alla matrice di oggetti.

Altri suggerimenti

Il supporto diretto per questo genere di cose è stato aggiunto in Leopard. Si chiama un "elenco di fonti".

Consulta le Note sulla versione di AppKit . Cerca NSTableViewSelectionHighlightStyleSourceList nel documento.

Oppure trascina fuori una vista tabella e seleziona Evidenzia: Elenco sorgenti in Interface Builder.

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