我已经向我的 NSMenuItem 子类(位于 NSStatusMenu 中)添加了一个自定义视图,这意味着默认情况下它不会以蓝色/灰色背景“突出显示”。
我通过使用以下代码实现了这一点:
- (void)drawRect:(NSRect)rect {
BOOL isHighlighted = [menuItem isHighlighted];
if (isHighlighted) {
[[NSColor selectedMenuItemColor] set];
[NSBezierPath fillRect:rect];
[menuItem addHover];
} else {
[super drawRect:rect];
[menuItem removeHover];
}
}
- (void)mouseUp:(NSEvent*)event {
NSMenuItem *item = [self enclosingMenuItem];
NSMenu *menu = [item menu];
[menu cancelTracking];
[menu performActionForItemAtIndex:[menu indexOfItem:item]];
}
菜单项很好地突出显示,我也可以单击每个项目;但是,当我单击它们时,一旦我重新打开菜单,它们似乎会保持isHighlighted状态。
有没有办法改变它,所以当我点击时,当我下次打开菜单时,突出显示的状态会被删除?