无法从appdelegate.m动画NSProgressIndicator

时间:2013-12-11 21:03:30

标签: cocoa nsprogressindicator

我之前曾在IOS工作,但刚刚开始研究MacOsX cocoa应用程序。我对NSProgressIndicator

有疑问

当我创建应用程序时,我有了appdelegate。 h& .m和mainmenu.xib。我将不确定进度指示器添加到MainMenu.xib和我的Appdelegate.h文件中,并使用NSProgressIndicator将其连接到IBOutlet的实例。

@property (nonatomic, retain) IBOutlet NSProgressIndicator* activityIndicator;

在我的Appdelegate.m文件中,我这样做:

activityIndicator = [[NSProgressIndicator alloc]initWithFrame:NSMakeRect(206,82,120,120)];

[activityIndicator setStyle:NSProgressIndicatorSpinningStyle];

[activityIndicator startAnimation:nil];

当我运行程序时,我可以看到进度条(如预期的那样),但它没有动画。任何解决方案都会有很大的帮助,如果它有逻辑错误,请解释一下,以便我可以学习。非常感谢。

1 个答案:

答案 0 :(得分:3)

这就是你目前正在做的事情:

  1. 您在界面构建器
  2. 中添加了进度视图
  3. 您为其声明了一个属性并将其连接到界面构建器
  4. 然后,您可以在运行时以编程方式创建新的进度视图,并将其分配给您的变量。
  5. 您基本上创建了一个全新的进度视图实例,并希望为其设置动画,而不是从nib文件加载的实例。它实际上没有动画的原因是,因为您在运行应用程序时看到的进度视图是来自界面构建器的视图(您没有动画)。您以编程方式创建的那个不会添加到视图层次结构中,因此一个是不可见的。

    您必须在Interface Builder中创建进度视图,分配插座然后使用它,即删除此行:

    activityIndicator = [[NSProgressIndicator alloc]initWithFrame:NSMakeRect(206,82,120,120)];
    

    或者您可以以编程方式创建进度视图,但之后必须将其添加到视图中。

    如果要修改从nib文件加载的进度视图的位置,请设置frame属性,而不是创建新实例。

    activityIndicator.frame = NSMakeRect(206,82,120,120);