2014-08-30 2 views
2

Работает на музыкальном проигрывателе. У меня есть NSTableView с множеством NSTableCellViews, каждый из которых имеет NSSlider, который скрывает, когда этот трек начинает играть.NSView - нарисовать сверху

Теперь проблема заключается в том, что мы хотим, чтобы ползунок рисовал прямо в нижней части NSTableCellView, но это означает, что knobRect перекрывается с NSTableCellView под ним. Каков наилучший способ убедиться, что ручка нарисована поверх других табличных ячеек?

Image overlap

+1

Почему бы вам просто не сделать высоту для этой ячейки немного выше вместо? –

+1

@MatthewBurke Нам нужны согласованные высоты строк. Я предполагаю, что мы могли бы одновременно увеличить высоту строки для одного и уменьшить для другого, пока слайдер будет видимым, пока он будет тем же самым для пользователя, но это не будет моим идеальным решением. –

+0

Да, это более или менее то, что я имел в виду. Остановить ввод слишком быстро. Хотя, возможно, и не идеально, я думаю, что ваша единственная альтернатива заключается в том, чтобы поместить слайдер в таблицу (или ее прокрутку). И это будет огромная головная боль. –

ответ

0

Регулировка высоты строк будет проще всего. (Особенно, если вы только позволяют одно воспроизведение одновременно :))

Вы можете попробовать setFloatsGroupRows: метод NSTableView и NSTableViewDelegate метод Tableview: isGroupRow: Эта комбинация дает некоторые очень уникальный встроенный в настройках, но от взглядов вы уже настроили справедливую сумму, чтобы вы были способны.

Кроме того, вы можете попробовать то, что они обертывают, которые на самом деле addFloatingSubview NSScrollView в: forAxis: Однако, что сказал, NSTableView и иерархия живет в которые довольно плотно наматывают вместе, так что вы можете найти это ведет себя очень странно с NSTableView, когда вы повторное выполнение операции с плавающей группой.

В конце концов, вы можете просто вернуться к дизайну пользовательского интерфейса. Возможно, ваш скроллер может быть таким, где край цветовой рампы - это ваш слайдер, чтобы вы могли поместиться прямо над дорожкой: example slider

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