Objective c 如何检查NSProgressIndicator当前是否已设置动画?
Objective c 如何检查NSProgressIndicator当前是否已设置动画?,objective-c,cocoa,macos,nsprogressindicator,Objective C,Cocoa,Macos,Nsprogressindicator,NSProgressIndicator具有名为startAnimation:和stopAnimation:的方法,但我找不到检查状态的方法(无论当前是否正在制作动画)。你会怎么做?你可以在你的类中的某个地方保留一个BOOL值,当你分别启动和停止动画时,你可以将该值设置为YES或NO。你不应该在控件本身中存储控件的状态 进度指示器控件不提供对其动画状态的访问,因为与文本字段不同,用户无法更改控件的状态。在没有代码启动控件的情况下,控件的状态永远不会改变。因为你是设定它状态的人,所以你应该跟踪它 C
NSProgressIndicator
具有名为startAnimation:
和stopAnimation:
的方法,但我找不到检查状态的方法(无论当前是否正在制作动画)。你会怎么做?你可以在你的类中的某个地方保留一个BOOL
值,当你分别启动和停止动画时,你可以将该值设置为YES
或NO
。你不应该在控件本身中存储控件的状态
进度指示器控件不提供对其动画状态的访问,因为与文本字段不同,用户无法更改控件的状态。在没有代码启动控件的情况下,控件的状态永远不会改变。因为你是设定它状态的人,所以你应该跟踪它
Cocoa使用模型-视图-控制器模式,进度指示器是视图。如果在控件中存储状态,则违反了MVC模式
您的视图应始终反映您的模型,并且控制器在那里以确保视图和模型保持同步
您应该使用Cocoa绑定将进度指示器的动画状态绑定到模型(首选)中存储的
BOOL
,或者在控制器类中实现代码,以便在模型中存储的BOOL
发生更改时控制进度指示器的动画状态。。但是我不想对我使用的所有Cocoa类都进行子类化:)为什么要对它们进行子类化?你不能在你的委托类中保留一个BOOL属性吗?或者你有不止一个进度指标?我有不止一个,是的。此外,每个对象都应该保留有关其自身状态的信息,而不是外部类。对于NSProgressIndicator
,似乎没有isAnimating
属性(至少我在文档中找不到),因此无法使用Cocoa绑定来实现这一点:(这是animate
属性。