NSMenuItem中的自定义视图未正确突出显示

Fab*_*ger 6 cocoa objective-c nsview nsmenuitem

我尝试使用自定义视图NSMenuitem,这是有效的.不幸的是,我在突出显示方面遇到了一些困难(鼠标悬停).我已经按照其他线程中的说明在drawRect:我的NSView子类中实现手动执行蓝色突出显示.这似乎有效,但突出显示颜色不正确.与普通菜单项相比,它看起来太暗了,有趣的subviews是我的自定义视图使用了正确的高亮颜色(见截图).有关如何解决此问题的任何想法?

drawRect:NSView子类中的当前方法如下所示:

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

    BOOL isHighlighted = [[self enclosingMenuItem] isHighlighted];
    if (isHighlighted)
    {
        [[NSColor selectedMenuItemColor] setFill];
        NSRectFill(dirtyRect);

        [self.profileNameView setTextColor:[NSColor whiteColor]];
        [self.securedIPView setTextColor:[NSColor whiteColor]];
        [self.separatorView setTextColor:[NSColor whiteColor]];
        [self.connectionTimeView setTextColor:[NSColor whiteColor]];
    }
    else
    {
        [self.profileNameView setTextColor:[NSColor controlTextColor]];
        [self.securedIPView setTextColor:[NSColor disabledControlTextColor]];
        [self.separatorView setTextColor:[NSColor disabledControlTextColor]];
        [self.connectionTimeView setTextColor:[NSColor disabledControlTextColor]];
    }
}
Run Code Online (Sandbox Code Playgroud)

结果突出显示如下:

在此输入图像描述