Пользовательские NSButton и NSButtonCell - PullRequest
1 голос
/ 09 декабря 2010

Я пытаюсь создать пользовательский вид кнопки.

Из того, что я собрал, NSButtonCell делает рисунок, поэтому я должен вместо этого перезаписать его.

Нопроблема в том, что у моего класса CustomButton есть другие вещи, такие как NSImage, mIsMouseOver и т. д. В настоящее время рисование выполняется в классе CustomButton, но я хочу переместить его в ячейку.

вопрос в том, могу ли я в любом случае получить доступ к изображению в классе customButton из класса customButtonCell, чтобы я мог использовать [image drawInRect:...]?

С уважением, Хан

Ответы [ 2 ]

1 голос
/ 09 декабря 2010

Метод drawWithFrame:(NSRect)frame inView:(NSView *)controlView вашей ячейки включает ссылку на рисуемый NSView, из которого вы можете получить доступ к свойствам представления (например, к изображению).

1 голос
/ 09 декабря 2010

Обычный способ - сохранить данные в подклассе NSCell.Базовый класс ячеек даже имеет свойство изображения - (id), поэтому ваш класс кнопки должен вызывать [[self cell] image], когда запрашивается изображение.

На самом деле, поскольку вы создаете подкласс NSButton, он содержит все, что вам нужно,просто переопределите методы рисования ячейки.А если вам нужно дополнительное свойство - определите его в ячейке, поместите в элемент управления.

...