当点击OSX上的菜单项时,该项目在菜单关闭前闪烁一次(开 - 关 - 关闭)。
我问自己,我怎么能模仿这种行为? (我使用NSCollectionView重新实现了一个菜单,选项和clic对项目都有效)
我试过2认为不起作用:
mouseOver = false;
[self drawRect:self.bounds];
mouseOver = true;
[self drawRect:self.bounds];
[[self window] performSelector:@selector(orderOut:) withObject:nil afterDelay:0.1];
和
mouseOver = false;
[self setNeedsDisplayInRect:self.bounds];
[self needsDisplay];
mouseOver = true;
[self setNeedsDisplayInRect:self.bounds];
[self needsDisplay];
[[self window] performSelector:@selector(orderOut:) withObject:nil afterDelay:0.1];
答案 0 :(得分:0)
我选择了那个解决方案:
-(void)mouseDown:(NSEvent *)theEvent {
[super mouseDown:theEvent];
[self performSelector:@selector(blinkItemOnce:) withObject:[NSNumber numberWithBool:NO] afterDelay:0.0];
[self performSelector:@selector(blinkItemOnce:) withObject:[NSNumber numberWithBool:YES] afterDelay:0.05];
[[self window] performSelector:@selector(orderOut:) withObject:nil afterDelay:0.15];
}
-(void) blinkItemOnce:(NSNumber*) b {
mouseOver = [b boolValue];
[self setNeedsDisplayInRect:self.bounds];
[self setNeedsDisplay:YES];
}