如何检查NSProgressIndicator当前是否已设置动画?

时间:2011-08-31 15:22:04

标签: objective-c cocoa macos nsprogressindicator

NSProgressIndicator有一些名为startAnimation:stopAnimation:的方法,但我找不到检查状态的方法(目前是否为动画)。你会怎么做?

2 个答案:

答案 0 :(得分:4)

您不应该在控件本身中存储控件的状态。

进度指示器控件不提供对其动画状态的访问,因为与文本字段不同,用户无法更改控件的状态。在没有代码启动的情况下,您将永远不会处于控件状态发生变化的情况。因为你是那个设置状态的人,所以你应该跟踪它。

Cocoa使用模型 - 视图 - 控制器模式,进度指示器是视图。如果您在控件中存储状态,那么您违反了MVC模式。

您的视图应始终反映您的模型,并且Controller会确保视图和模型保持同步。

您应该使用Cocoa Bindings将进度指示器的动画状态绑定到模型中存储的BOOL(首选),或者在控制器类中实现代码以控制进度指示器的动画状态是对模型中存储的BOOL的更改。

答案 1 :(得分:0)

当您分别开始和停止动画时,您可以在班级中的某个位置保留BOOL值,并设置为YESNO