我正在尝试将自定义视图添加到OS X 10.10 Yosemite菜单栏中的NSMenuItem.
自定义视图只是一个带有NSTextField"label"的NSView背景.
问题是当添加到菜单时,背景NSView被赋予优胜美地式的活力/透明度.NSTextfield标签不是.

通过使用NSRectFillUsingOperation我已经得到这个在优胜美地的一些背景颜色看起来很好.但其他人继续不匹配.当它工作时,手动"突出显示"视图后,原始颜色会更改,不再匹配.如果需要,我可以为此挖掘一些示例代码.
然后,当它在约塞米蒂看起来有点好的时候,在10.9小牛队中看起来很糟糕.
我也尝试将wantsLayer属性设置为YES以将视图转换为CALayer支持的视图.这会在明确的背景下创建其他问题,例如文本无法正确消除锯齿.
我的问题:
如何在NSMenuItem自定义视图上显示标签?标签的背景必须与视图的背景完全匹配.解决方案必须在Yosemite和Mavericks中运作.
示例代码如下:
self.statusItem = [[NSStatusBar systemStatusBar]
statusItemWithLength:NSVariableStatusItemLength];
[self.statusItem setTitle:@"TEST"];
[self.statusItem setHighlightMode:YES];
[self.statusItem setEnabled:YES];
[self.statusItem setTarget:self];
NSMenu *menu = [[NSMenu alloc] init];
[menu addItemWithTitle:@"Disabled menu item" action:nil keyEquivalent:@""];
[menu addItemWithTitle:@"Enabled menu item" action:@selector(enabled) keyEquivalent:@""];
NSTextField *label = [[NSTextField alloc] initWithFrame:NSMakeRect(30, 20, 50, 20)];
label.stringValue = @"label";
label.editable = NO;
label.bordered = NO;
label.backgroundColor = [NSColor blueColor];
//label.backgroundColor = [NSColor clearColor];
PKMenuItemView *view = [[PKMenuItemView alloc] …Run Code Online (Sandbox Code Playgroud)