【发布时间】:2011-09-04 10:10:51
【问题描述】:
我已向我的 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 状态。
有没有办法改变它,所以当我点击时,当我下次打开菜单时,突出显示的状态会被移除?
【问题讨论】:
标签: objective-c nsmenuitem nsmenu nsstatusitem