Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 如何检查NSProgressIndicator当前是否已设置动画?_Objective C_Cocoa_Macos_Nsprogressindicator - Fatal编程技术网

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
属性。