Как заставить NSPopUpButtonCell перезапустить себя? - PullRequest
0 голосов
/ 11 декабря 2008

Я создаю собственный подкласс NSPopUpButton и NSPopUpButtonCell для отображения одиночного значка в верхней части кнопки вместо обычного текста.

Для этого я переопределяю

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

в моем подклассе ячейки кнопки, чтобы нарисовать мою иконку в соответствующем размере и местоположении. Когда пользователь наводит курсор на кнопку, я хочу изменить изображение. Моя единственная проблема в том, что я не могу понять, как вызвать повторное отображение ячейки кнопки (вызывая drawInterior ... снова). По умолчанию он отображается только при нажатии кнопки или при перемещении фокуса в другое окно. Я пробовал setNeedsDisplay: ДА, но, похоже, этого не происходит.

1 Ответ

2 голосов
/ 12 декабря 2008

Я нашел способ сделать это, чтобы вставить вызов

[self updateCell:self.cell];

внутри моего подкласса NSPopUpButton сразу после того, как в любой момент я изменил изображение, отображаемое ячейкой.

...