小编use*_*965的帖子

简单的进度条没有更新

我正在实现一个Cocoa应用程序,它只是一个简单的进度条,当我按下按钮时启动它.

情况是:当我按下按钮时,我可以看到动画是开始和停止,但进度条不会更新值.

我也尝试过这里提到的解决方案,但它不起作用:
如何在长时间运行的循环中更新Cocoa中的进度条?

有人可以帮我看看我的源代码中的问题在哪里?

这是我的来源.

SimpleProgressBar.m

#import "SimpleProgressBar.h"

@implementation SimpleProgressBar
@synthesize progressBar;

int flag=0;

-(IBAction)startProgressBar:(id)sender{

    if(flag ==0){
        [self.progressBar startAnimation:sender];
        flag=1;
    }else{
        [self.progressBar stopAnimation:sender];
        flag=0;
    }
    [self.progressBar displayIfNeeded];
    [self.progressBar setDoubleValue:10.0];

    int i=0;

    for(i=0;i<100;i++){

        NSLog(@"progr: %f",(double)i);
        [self.progressBar setDoubleValue:(double)i];
        [self.progressBar setNeedsDisplay:YES];
    }


}

@end
Run Code Online (Sandbox Code Playgroud)

SimpleProgressBar.h

#import < Foundation/Foundation.h >

@interface SimpleProgressBar : NSObject{

    __weak NSProgressIndicator *progressBar;

}

@property (weak) IBOutlet NSProgressIndicator *progressBar;

-(IBAction)startProgressBar:(id)sender;
@end
Run Code Online (Sandbox Code Playgroud)

非常感谢您提供任何有用的答案.

更新:

这是我从解决方案的移植,它不起作用:

SimpleProgressBar.m

#import "SimpleProgressBar.h"

@implementation SimpleProgressBar
@synthesize progressBar;

int flag=0;

-(IBAction)startProgressBar:(id)sender{

    if(flag ==0){
        [self.progressBar startAnimation:sender];
        flag=1; …
Run Code Online (Sandbox Code Playgroud)

macos cocoa objective-c

1
推荐指数
1
解决办法
5767
查看次数

标签 统计

cocoa ×1

macos ×1

objective-c ×1