9

ドック アイコンにプログレス バーを表示するアプリケーションを作成しています。現在、私はこれを持っていますが、機能していません:

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

それとも自分でドックに描く必要がありますか? 誰でも私を助けることができますか?ありがとう。

4

2 に答える 2

6

contentView が 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];
}
于 2012-04-25T13:37:25.210 に答える
2

DockTile サンプル コードを試してみました: http://developer.apple.com/library/mac/#samplecode/DockTile/Introduction/Intro.html#//apple_ref/doc/uid/DTS10004391

追加することで、NSProgressバーをそこに表示することができました

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

initWithFrame の SpeedometerView.m に移動しましたが、ドックではまだグレー表示されていました。

このページも見つけました: http://osx.hyperjeff.net/Apps/apps?p=4&sub=22&l=1&u=on「PMProgressIndicator」があり、役立つかもしれませんが、飛び込みませんでした。

それが少し役立つことを願っています。あなたがそれを理解したら、ここに戻って投稿してください。私も知りたいです.

于 2010-10-23T17:42:12.670 に答える