2013-05-06 4 views
10

Я ищу, чтобы удалить цвет разделителя в View based NSTableView.Изменить цвет разделителя на фон или удалить его из NSTableView

Это выглядит следующим образом:

enter image description here

Для UITableView есть метод setSeparatorColor: но не для NSTableView.

Решения будут высоко оценены.

+0

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

+0

@Harikrishnan: уже проверено, но это только не сработало для меня, мне также пришлось увеличить viewSize. –

ответ

13

Я сделал это так:

Изменен интервал межэлементных для:

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

И изменил высоту камеры, установленной ширины зрения на 30.f, клетка втягивается имеет 35.f.

Теперь он идеально подходит, снимок экрана:

enter image description here

8

Для NSTableView, Interface Builder имеет настройки для Horizontal Grid, Vertical Grid и Grid Color. Они отражены в API как -setGridStyleMask и setGridColor.

Они делают именно то, что вы хотите.

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

Мне нужен прозрачный цвет. –

+0

Если вы установите сетку равным единице, единственным цветом будет ваш фоновый цвет, как вы просили. Если бы вы хотели, чтобы это был другой цвет, вы могли бы, конечно, установить его на другой частично прозрачный цвет. Любой цвет может иметь набор прозрачности (альфа). –

+0

Я проверил таким образом, но все же он показывает в представлении на основе таблицы :( –

0

Возможно, я мог бы упомянуть, что в таблицах на основе NSTableRowView отвечает за рисование разделителей. Поэтому в инспекторе для таблицы вы устанавливаете сетку в «None» и реализуете drawSeparatorInRect: в вашем подклассе NSTableRowView, что в вашем случае означает, что оно пустое.

+0

да, ваша точка подкласса правильная. Но я сделал это без этого накладных расходов. Как вы видели в моем решении. –

+3

Если вы отключите представления сетки в NSTableView, drawSeparatorInRect: не будет вызван. –

0

IMHO, NISAINViewView немного странно.

Например: Если вы установили сетку в «None» или «NSTableViewSolidVerticalGridLineMask», drawSeparatorInRect: не вызывается. Действительно !!!

Так drawSeparatorInRect: называется OMLY когда NSTableViewSolidHorizontalGridLineMask

Так как я настроить вертикальную сетку ?? Ну, я не могу легко? Без того, чтобы копаться в NSTableView монстра

+0

Я нашел решение своей проблемы, установил представление таблицы в NSTableViewGridNone, чем переопределить drawRect: в вашем пользовательском NSTableRowView для рисования частичных сеток или всего, что вам нравится, так что какао очень гибкое. –

Смежные вопросы