2013-05-28 38 views
0

我在OS X的ETL应用程序中使用了NSProgressIndicator,并且我用它指示的是当前状态下载给定页面的源。NSProgressIndicator不能正常工作

在第一次运行时一切都很好 - 像魅力一样的作品。当我点击重置按钮并尝试再次运行整个过程时,问题就出现了 - 指示器在开始时全部加载。

声音对我来说,我需要把它恢复为默认值,但我不知道如何...

- (IBAction)showAction:(id)sender 
{ 
    [[self panel] display]; 
    NSLog(@"Show action"); 
} 

- (IBAction)restartETLAction:(id)sender 
{ 
    [etl restart]; 
    [self setProgressBar:nil]; 
    NSLog(@"Restart action"); 
} 

- (void) showProgressBarPanelWithTitle:(NSString *) title 
{ 
    [[self panel] setTitle:title]; 
    [[self panel] makeKeyAndOrderFront:self]; 
} 

- (void) updateProgressBarPanelWithProgressLevel:(double) progressLevel 
{ 
    [[self progressBar] setDoubleValue:progressLevel]; 
    [[self progressBar] startAnimation:self]; 
} 

- (void) hideProgressBarPanel 
{ 
    [self.progressBar stopAnimation:self]; 
    [[self panel] orderOut:self]; 
} 

当然,我有一些属性:

@property (assign) IBOutlet NSPanel *panel; 
@property (assign) IBOutlet NSProgressIndicator *progressBar; 

回答

0

我找到了答案。我需要nil一些对象来重新启动应用程序的整个过程。因此,在此之后,应用程序会创建此对象的新实例,并且它们是干净的,因此NSProgressIndicator的工作方式应该与此类似。

0

带来NSProgress指示灯正面如下所示,然后重试。注释你的错误,如果任何事情你长了

enter image description here

+0

你的意思是这样的吗? http://img443.imageshack.us/img443/3789/zrzutekranu20130530o085.png 此屏幕显示它现在的样子。 – cojoj

+0

查看[this](http://stackoverflow.com/questions/16398854/how-to-make-the-nsbutton-above-a-nsbutton)概念...你在分开的视图中显示进度指示器。 ..在控件下面添加progres指标... – user23790

+0

我明白你的意思,我猜...但看看我发布的屏幕。面板视图内只有指示灯,我无法更改其位置。 – cojoj