Объектив- C, NSPopMenuButton & NSMenu Color - PullRequest
1 голос
/ 29 марта 2020

У меня есть NSPopMenuButton, который подключен к NSMenu стандартным способом. Я попытался разделить оба подкласса в попытке изменить цвет фона самого меню. Я явно не правильно что-то делаю, поэтому любой совет будет полезен.

Пробовал (NSPopUpButton) customPopUpButton.m:

- (void)drawRect:(NSRect)dirtyRect {
    [super drawRect:dirtyRect];

    // Drawing code here.
    [[NSColor grayColor] set];
    NSRectFill(dirtyRect);

}

Что дало мне: not good Я бы предпочел, чтобы это было так: better

Я попытался создать другой класс для переопределения NSPopUpButtonCell, как предлагается в другом ответе, но я не должен знать, как реализовать это правильно, так как кажется, что он не имеет никакого эффекта, кроме того, что делает приведенный выше код.

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

    [[NSColor grayColor] set];
    NSRectFill(cellFrame);

    [super drawInteriorWithFrame:cellFrame inView:controlView];

}

Следует отметить, что моя цель развертывания - macOS 10.11, если это имеет какое-то значение.

1 Ответ

1 голос
/ 29 марта 2020

Ваш индивидуальный NSPopUpButton чертеж заполняет всю область рисования цветом. Отсутствует рисунок заголовка по умолчанию (под закрашенным цветом).

Попробуйте настроить NSPopUpButtonCell drawInteriorWithFrame:(NSRect)cellFrame inView:(NSView *)controlView.

...