0

OSXでメニュー項目をクリックすると、メニューが閉じる前に項目が1回点滅(on-off-on-close)します。

私は自分自身にその行動をどのように模倣できるかを尋ねていました。(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];
4

1 に答える 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];
}
于 2013-01-26T13:57:38.283 に答える