Как мне заставить NSPopUpButtonCell повторно отобразить себя?
-
21-08-2019 - |
Вопрос
Я создаю пользовательский подкласс NSPopUpButton и NSPopUpButtonCell для отображения одинокого значка в верхней части кнопки вместо обычного текста.
Чтобы сделать это, я переопределяю
- (void)drawInteriorWithFrame:(NSRect)cellFrame inView:(NSView *)controlView
в моем подклассе button cell я хочу нарисовать свой значок соответствующего размера и расположения.Когда пользователь наводит курсор мыши на кнопку, я хочу изменить изображение.Моя единственная проблема в том, что я не могу понять, как заставить ячейку кнопки повторно отображаться (вызвав drawInterior...снова).По умолчанию кажется, что он повторно отображается только при нажатии кнопки или при перемещении фокуса в другое окно.Я пробовал setNeedsDisplay: ДА, но, похоже, это не помогает.
Решение
Способ, который я нашел для этого, состоял в том, чтобы вставить вызов в
[self updateCell:self.cell];
внутри моего подкласса NSPopUpButton сразу после любой точки я изменил изображение, отображаемое ячейкой.