2015-06-14 19 views
9

È possibile creare un NSTableView in Interface Builder con un numero di righe preimpostato in modo che la tabella possa essere utilizzata come modulo?NSTableView statico con righe preimpostate

Ho una vista che richiede una forma di varie etichette e campi di testo. Ho provato a utilizzare singole etichette e campi di testo, ma sembra scadente. Lo stesso con lo NSForm che aggiunge un paio di restrizioni sul layout e sul contenuto della cella.

Quindi una vista tabella appare molto nitida come vista modulo. Quello che mi piacerebbe fare in modo ottimale è trascinare sette TextTableViewCell in uno statico NSTableView in IB e impostare le etichette nella prima colonna e impostare dinamicamente i valori nelle righe della seconda colonna.

Ma se lo costruisco, le mie sette file sono scomparse. Come posso ottenere un NSTableView per agire statico?

risposta

1

Come ha sottolineato @Anc Ainu, a partire da OS X 10.10 è possibile utilizzare tableViews statiche in OS X. È necessario impostare la proprietà usesStaticContents su NSTableView in modo che si comporti come un tableView statico su iOS. Secondo i documenti:

Una tabella statica non si basa su un'origine dati per fornire il numero di righe. I contenuti di una tabella statica sono impostati in fase di progettazione e possono essere modificati a livello di codice secondo necessità. In genere, non si modifica il contenuto di una vista tabella statica dopo averli impostati.

In Xcode, qualsiasi riga aggiunta a una tabella statica viene salvata nel corrispondente nib o nello storyboard e caricata con il resto della tabella in fase di runtime. È possibile aggiungere le righe della tabella in modo programmatico a una vista tabella statica utilizzando insertRowsAtIndexes: withAnimation: method. Quando si aggiungono le righe a livello di codice, il delegato della vista tabella deve implementare tableView: viewForTableColumn: row: metodo per fornire la visualizzazione corrispondente per qualsiasi nuova riga. Puoi anche rimuovere le righe in qualsiasi momento usando removeRowsAtIndexes: withAnimation: method.

Si ricorda che questa proprietà è disponibile su OS X 10.10 e versioni successive.

+1

Che dire 'usesStaticContents' disponibili in OSX 10.10 Link: https://developer.apple.com/library/mac/documentation/Cocoa/Reference/ApplicationKit/Classes/NSTableView_Class/#//apple_ref/occ/instp/ NSTableView/usesStaticContents – AncAinu

+0

Hai perfettamente ragione! Non ero a conoscenza di questa proprietà. Modificato la mia risposta subito! Grazie! – mangerlahn

+1

È possibile creare queste viste statiche nella vista tabella in IB? –