1

我来自 iOS/Android 编程背景,正在开发我的第一个 MAC 应用程序。我正在使用NSComboBox列出一些用户可以选择的项目,但在设置下拉菜单的背景颜色时遇到了一些问题。

我目前有什么?

这就是我现在所拥有的。您可以在白色背景中看到下拉列表中的 2 个选项(忘记蓝色,它显示该项目已被选中)。我想把白色换成其他颜色

在此处输入图像描述

我做了什么?

我做了一些搜索并遇到了这个线程。答案建议继承 NSComboBoxCell 和覆盖- (void)drawWithFrame:(NSRect)cellFrame inView:(NSView *)controlView方法。我试过了..这是我的代码

@interface CustomComboBoxCell : NSComboBoxCell
@end

@implementation CustomComboBoxCell
- (void)drawWithFrame:(NSRect)cellFrame inView:(NSView *)controlView{
    [super drawWithFrame:cellFrame inView:controlView];

    //I want red color to the dropdown menu, I filled with yellow color
    NSRect bounds = NSMakeRect(cellFrame.origin.x, cellFrame.origin.y,
                     cellFrame.size.width, cellFrame.size.height);
    [[NSColor redColor] setFill];
    NSRectFill(bounds);
}
@end

这就是结果

在此处输入图像描述

不是我想要的。:(

问题

简单,如何更改下拉菜单的背景颜色 NSComboBox

任何人?

4

2 回答 2

0

好吧,我使用了NSButtonwith 菜单,所以我可以使用NSMenuItems自定义视图。NSTextField这不是您真正需要的,但是您可以使用,NSButton和进行组合框替换NSMenu。也许那会更容易。

于 2013-06-13T09:59:05.800 回答
0

我玩了一下。这对你有用吗:

在此处输入图像描述

如果要更改单元格中的每个标题,可以设置标签(也在 IB 中)。

于 2013-06-19T17:40:12.280 回答