不确定的 NSProgressIndicator 不会设置动画
Posted
技术标签:
【中文标题】不确定的 NSProgressIndicator 不会设置动画【英文标题】:Indeterminate NSProgressIndicator will not animate 【发布时间】:2013-02-13 19:24:25 【问题描述】:所以我有一个简单的用户界面、一个开始按钮、一些文本/标签和一个进度条。当点击开始按钮时,NSProgressIndicator 应该 动画。这是我的代码:
@synthesize progressBar = progressBar;
/* Some code and setup stuffs... */
- (IBAction)startAction:(id)sender
NSLog(@"Button clicked.");
NSLog(@"Beginning Socketry and socket creation...");
[progressBar setUsesThreadedAnimation:YES];
[progressBar setIndeterminate:YES];
[progressBar startAnimation:progressBar];
我检查了多个来源(Apple Developer Portal 等),但没有任何效果。我不必拥有 NSPIndicator,但如果可以的话,那就太好了。 另外,这是我的 AppDelegate.h 文件:
#import <Cocoa/Cocoa.h>
@interface AppDelegate : NSObject <NSApplicationDelegate>
@property (assign) IBOutlet NSWindow *window;
@property (readonly, strong, nonatomic) NSPersistentStoreCoordinator *persistentStoreCoordinator;
@property (readonly, strong, nonatomic) NSManagedObjectModel *managedObjectModel;
@property (readonly, strong, nonatomic) NSManagedObjectContext *managedObjectContext;
@property (weak) IBOutlet NSProgressIndicator *progressBar;
- (IBAction)saveAction:(id)sender;
- (IBAction)startAction:(id)sender;
- (IBAction)changeStatus:(id)sender;
- (IBAction)changeProgress:(id)sender;
@end
【问题讨论】:
您是否验证progressBar 不为零(NSLog(@"Progress Bar: %@", progressBar);
)?如果 nil 在 IB 中设置您的连接。还要确保您没有通过将其设置为尚未添加到视图层次结构的新进度条来覆盖它。
好吧,我照你说的做了,但它不是零,但我会尽快尝试一些真正的东西。实际上,我只是删除了头文件中的引用,然后从.xib中重新删除了引用,然后再次运行它,单击开始按钮,它完美运行!我认为这是您所说的第二个问题,覆盖了原始问题。前几天我刚开始学习Objective-C,它的语法让我很困惑。感谢您的帮助! :D
@Ech0riginal 当你开始看到可以一起交谈的对象时,它会变得更容易
【参考方案1】:
进入Progress Indicator的Attributes Inspector,如下图进行设置:
见下面的代码:
@synthesize progressBar;
- (IBAction)startAction:(id)sender
[progressBar setHidden:NO];
[progressBar setIndeterminate:YES];
[progressBar setUsesThreadedAnimation:YES];
[progressBar startAnimation:nil];
【讨论】:
以上是关于不确定的 NSProgressIndicator 不会设置动画的主要内容,如果未能解决你的问题,请参考以下文章
NSProgressIndicator 的 setControlTint 没有效果
斯威夫特:如何使用 NSProgressIndicator?
如何检查 NSProgressIndicator 当前是不是为动画?