在OSX上单击菜单项时,该菜单项在菜单关闭前闪烁一次(开-关-开-关)。
我在问自己,怎样才能模仿这种行为?(我已经用NSCollectionView重新实现了一个菜单,在项目上选择和循环都有效)
我试了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];
发布于 2013-01-26 13:57:38
我选择了这个解决方案:
-(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];
}
https://stackoverflow.com/questions/14522509
复制相似问题