2013-01-25 37 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]; 
}