2013-01-25 31 views
0

在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]; 

回答

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]; 
}