显示,激活和停止未确定的进度指示器

时间:2013-07-31 20:09:36

标签: objective-c cocoa timing nstask nsprogressindicator

我在点击按钮时显示进度指示器时遇到一些问题,然后在 NSTask 完成时停止并隐藏指示器。

这应该是时间表: 1-按钮单击 2-显示进度指示器(从最初隐藏的状态) 3-激活进度指示器 4-激活相关的NSTask 5-继续显示指示符,直到NSTask完成 6-完成NSTask后,隐藏进度指示器。

我知道如何获得动画等的进度指示器。我只是不知道如何将这些与NSTask完成的东西结合起来..

提前感谢您的帮助!

2 个答案:

答案 0 :(得分:1)

使用NSTask的{​​{1}}属性设置任务终止时要执行的块。在该块中停止/隐藏您的进度指示器。

附录(见评论)

粗略概述:

terminationHandler

请注意,处理程序将传递NSTask *myTask = ...; NSProgressIndicator *myIndicator = ...; myTask.terminationHandler = ^(NSTask *theTask) { [myIndicator stopAnimation:nil]; }; ,以防它需要从中访问信息。另外NSTask作为nil传递给sender - 您通常会传递stopAnimation:,但这会导致保留周期以及实际调用该方法的对象并不重要。

答案 1 :(得分:1)

您应该可以将NSTask的{​​{1}}设置为阻止。

NSTask terminationHandler