2013-05-06 10 views
10

Sto cercando di rimuovere il colore separatore in Vista basato NSTableView.Cambia colore separatore in sfondo o rimuoverlo da NSTableView

Ecco come si presenta:

enter image description here

Per UITableView c'è un metodo setSeparatorColor: ma non per NSTableView.

Le soluzioni saranno molto apprezzate.

+0

http://stackoverflow.com/questions/3032802/nstableview-get-rid-blank-space-separating-columns – Harikrishnan

+0

@Harikrishnan: già controllato ma che non ha funzionato solo per me, ho dovuto aumentare anche il viewSize. –

risposta

13

ho fatto questo come:

cambiato la spaziatura Intercell a:

[aTableView setIntercellSpacing:NSMakeSize(0, 0)]; 

E cambiato l'altezza della cella, larghezza impostata di vista 30.f, la cella essendo disegnato è 35.f.

Ora è perfetto, screen shot:

enter image description here

8

Per NSTableView, Interface Builder ha le impostazioni per Horizontal Grid, Vertical Grid e Grid Color. Questi sono riflessi nell'API come -setGridStyleMask e setGridColor.

Fanno esattamente quello che vuoi.

[table setGridColor:[NSColor clearColor]]; 
[table setGridStyleMask:NSTableViewGridNone]; 
+0

Volevo il colore trasparente. –

+0

Se si imposta la griglia su none, l'unico colore sarà il colore di sfondo, proprio come richiesto. Se avessi voluto che fosse un altro colore, potresti ovviamente impostarlo su un diverso colore parzialmente trasparente. Qualsiasi colore può avere un set di trasparenza (alfa). –

+0

Ho controllato in questo modo, continua a visualizzare in tabella viewview :( –

0

Forse potrei ricordare che nelle tabelle vista basato NSTableRowView è responsabile della redazione dei separatori. Quindi nell'ispettore per il tavolo si imposta la griglia su "Nessuno" e si applica drawSeparatorInRect: nella sottoclasse NSTableRowView, che nel tuo caso significherebbe lasciarlo vuoto.

+0

sì, il tuo punto di sottoclasse è corretto. Ma l'ho fatto senza quell'overhead. Come hai visto nella mia soluzione. –

+3

Se si disattivano le viste della griglia in un NSTableView, drawSeparatorInRect: non viene chiamato. –

0

IMHO, Le API di NSTableView sono un po 'strane.

Ad esempio: Se si imposta la griglia su "Nessuno" OPPURE "NSTableViewSolidVerticalGridLineMask" drawSeparatorInRect: non viene chiamato. Davvero !!!

Così drawSeparatorInRect: viene chiamato omly quando NSTableViewSolidHorizontalGridLineMask

Allora, come faccio a personalizzare griglia verticale ?? Beh, non posso facilmente? Senza dover scavare in NSTableView mostro

+0

Ho trovato una soluzione al mio problema, imposta la vista tabella su NSTableViewGridNone che sovrascrive drawRect: nel tuo NSTableRowView personalizzato per disegnare griglie parziali o qualsiasi cosa tu voglia, così dopo tutto il cacao è altamente flessibile. –

2

risposta per Interface Builder:

enter image description here

Problemi correlati