Как мне заставить NSPopUpButtonCell повторно отобразить себя?

StackOverflow https://stackoverflow.com/questions/360856

Вопрос

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

Чтобы сделать это, я переопределяю

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

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

Это было полезно?

Решение

Способ, который я нашел для этого, состоял в том, чтобы вставить вызов в

[self updateCell:self.cell];

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top