Прозрачный NSTableView

Я хочу настроить свой NSTableView. Мои общие требования таковы:

  • В каждой строке будет одно изображение и некоторый текст; изображения и текст могут отличаться.
  • Некоторые ячейки могут не иметь изображения.
  • Высота строки зависит от некоторого внешнего фактора.
  • Ячейка не должна рисовать фон, она должна отображать фон NSTableView.

Пока я могу рисовать прозрачные ячейки с текстом. Я погуглил и обнаружил, что мне нужно настроить каждую ячейку. Теперь у меня есть этот вопрос: должен ли я поддерживать два столбца или один столбец должен быть в порядке, имея одно изображение слева и текст рядом с ним?

Я также понимаю, что мне нужно переопределить два метода:

- (void) drawWithFrame:(NSRect)cellFrame inView:(NSView *)controlView

Итак, для каждой ячейки мне нужно нарисовать/построить ячейку - может ли кто-нибудь мне помочь? Я иду в правильном направлении? Могу ли я добиться прозрачного фона с динамической высотой с помощью вышеуказанного подхода?


person Amitg2k12    schedule 20.01.2011    source источник


Ответы (1)


В каждой строке будет одно изображение и некоторый текст,

Итак, два столбца — один с ячейкой изображения, другой с ячейкой текстового поля.

изображения и текст могут отличаться,

Я должен на это надеяться.

В некоторых ячейках может не быть изображения,

Не проблема.

Высота строки зависит от некоторого внешнего фактора,

Будьте делегатом табличного представления, и оно спросит вас, какой должна быть высота строки.

Ячейка не должна рисовать фон,

Этого не будет, если вы не настроите его на это.

в целом он должен показывать фон NSTableView,

Табличное представление в любом случае будет рисовать свой собственный фон, который вы можете установить в Инспекторе IB. Если вы хотите, чтобы табличное представление не рисовало фон, вы должны установить его цвета фона на чистый цвет.

Вам не нужна пользовательская ячейка для всего этого.

person Peter Hosey    schedule 20.01.2011
comment
Спасибо, Питер, позвольте мне попробовать с делегатом, на самом деле я ищу все возможные функции делегата, я мог бы отображать прозрачный фон и текст вместе с двумя цветами, но я не знаю, как отображать изображение в одном столбце. - person Amitg2k12; 20.01.2011
comment
Как я уже сказал, вам нужно поместить ячейку изображения в этот столбец. См. Руководство пользователя ИБ. Источник данных и методы делегата перечислены в документации по этим протоколам. - person Peter Hosey; 20.01.2011
comment
Привет, Питер, я новичок в Cocoa, пока я сделал следующее: - person Amitg2k12; 21.01.2011