2010-10-23 9 views
8

Ich erstelle eine Anwendung, die im Dock-Symbol eine Fortschrittsleiste anzeigen sollte. Zur Zeit habe ich das, aber es funktioniert nicht:Hinzufügen eines NSProgressIndicators zum Dock-Symbol

NSProgressIndicator *progressIndicator = [[NSProgressIndicator alloc] initWithFrame:NSMakeRect(0.0f, 0.0f, 10.0f, 20.0f)]; 
    [progressIndicator setStyle:NSProgressIndicatorBarStyle]; 
    [progressIndicator setIndeterminate:NO]; 
    [[[[NSApplication sharedApplication] dockTile] contentView] addSubview:progressIndicator]; 
    [progressIndicator release]; 

Oder muss ich es auf dem Dock selbst zeichnen? Kann mir jemand helfen? Vielen Dank.

Antwort

2

hatte gerade ein Spiel um mit dem DockTile Beispielcode: http://developer.apple.com/library/mac/#samplecode/DockTile/Introduction/Intro.html#//apple_ref/doc/uid/DTS10004391

ich es geschafft, eine NSProgress bar erhalten dort angezeigt werden durch

NSProgressIndicator *progressIndicator = [[NSProgressIndicator alloc] initWithFrame:NSMakeRect(0.0f, 0.0f, 100.0f, 20.0f)]; 
[self addSubview:progressIndicator]; 
[progressIndicator setStyle:NSProgressIndicatorBarStyle]; 
[progressIndicator setIndeterminate:NO]; 
[progressIndicator setMinValue:0]; 
[progressIndicator setMaxValue:100]; 
[progressIndicator setDoubleValue:25]; 
[progressIndicator release]; 

zu SpeedometerView.m in Initwithframe Zugabe, aber es war immer noch ausgetrocknet auf dem Dock.

Ich habe auch diese Seite gefunden: http://osx.hyperjeff.net/Apps/apps?p=4&sub=22&l=1&u=on die "PMProgressIndicator" hat, die helfen könnte, aber ich habe es nicht durchgespielt.

Hoffe das hilft ein bisschen, posten zurück hier, wenn Sie es herausfinden, würde mich interessieren, auch zu wissen.

+0

Ich fand heraus, dass ich die docktile Ansicht jedes Mal, wenn der Fortschrittsbalken geändert hat erneut anzuzeigen. (: –

+0

) War die Bar für dich ausgegraut? Als ich schnell gegangen war, war es immer grau für mich ... – Oliver

5

Im Ziel hatte ich den folgenden Code als content zu verwenden war null:

docTile = [[NSApplication sharedApplication] dockTile]; 
    NSImageView *iv = [[NSImageView alloc] init]; 
    [iv setImage:[[NSApplication sharedApplication] applicationIconImage]]; 
    [docTile setContentView:iv]; 

    progressIndicator = [[NSProgressIndicator alloc] 
               initWithFrame:NSMakeRect(0.0f, 0.0f, docTile.size.width, 10.)]; 
    [progressIndicator setStyle:NSProgressIndicatorBarStyle]; 
    [progressIndicator setIndeterminate:NO]; 
    [iv addSubview:progressIndicator]; 

    [progressIndicator setBezeled:YES]; 
    [progressIndicator setMinValue:0]; 
    [progressIndicator setMaxValue:1]; 
    [progressIndicator release]; 

    [self setProgress:[NSNumber numberWithFloat:-1]]; 
} 

- (void)setProgress:(NSNumber *)fraction { 
    if ([fraction doubleValue] >= 0) { 
     [progressIndicator setDoubleValue:[fraction doubleValue]]; 
     [progressIndicator setHidden:NO]; 
    } 
    else 
     [progressIndicator setHidden:YES]; 
    [docTile display]; 
} 
Verwandte Themen