我尝试使用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]];
}
}
结果突出显示如下: