Я пытаюсь использовать пользовательский вид для 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]];
}
}
Полученное выделение выглядит так: