3

我以前在 IOS 上工作过,但刚刚开始在 MacOsX 可可应用程序上工作。我有一个关于NSProgressIndicator.

当我创建应用程序时,我有 appdelegate。h & .m 和一个 mainmenu.xib。我将 Indeterminate Progress Indicator 添加到 MainMenu.xib 并在我的 Appdelegate.h 文件中将其连接到NSProgressIndicatorusing的实例IBOutlet

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

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

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

[activityIndicator setStyle:NSProgressIndicatorSpinningStyle];

[activityIndicator startAnimation:nil];

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

4

1 回答 1

3

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

  1. 您在界面生成器中添加了进度视图
  2. 您为它声明了一个属性并在界面生成器中连接了它
  3. 然后,您可以在运行时以编程方式创建一个新的进度视图并将其分配给您的变量。

您基本上创建了一个全新的进度视图实例并希望对其进行动画处理,而不是从 nib 文件加载的那个。它实际上没有动画的原因是,因为您在运行应用程序时看到的进度视图是来自界面生成器的视图(您没有动画)。您以编程方式创建的那个不会添加到视图层次结构中,因此它是不可见的。

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

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

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

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

activityIndicator.frame = NSMakeRect(206,82,120,120);
于 2013-12-11T21:13:37.173 回答