每当单击按钮时显示进度指示器,然后在NSTask完成时停止并隐藏指示器,我遇到了一些问题。
这应该是时间线: 1- 按钮单击 2- 显示进度指示器(从最初的隐藏状态) 3- 激活进度指示器 4- 激活关联的 NSTask 5- 继续显示指示器直到 NSTask 完成 6- NSTask 完成后, 隐藏进度指示器。
我知道如何获得进度指示器来制作动画等。我只是不知道如何将这些与 NSTask 完成的事情结合起来。
我在这里先向您的帮助表示感谢!
每当单击按钮时显示进度指示器,然后在NSTask完成时停止并隐藏指示器,我遇到了一些问题。
这应该是时间线: 1- 按钮单击 2- 显示进度指示器(从最初的隐藏状态) 3- 激活进度指示器 4- 激活关联的 NSTask 5- 继续显示指示器直到 NSTask 完成 6- NSTask 完成后, 隐藏进度指示器。
我知道如何获得进度指示器来制作动画等。我只是不知道如何将这些与 NSTask 完成的事情结合起来。
我在这里先向您的帮助表示感谢!
使用NSTask
'sterminationHandler
属性设置任务终止时要执行的块。在该块中停止/隐藏您的进度指示器。
附录(见评论)
粗略的概述:
NSTask *myTask = ...;
NSProgressIndicator *myIndicator = ...;
myTask.terminationHandler = ^(NSTask *theTask) { [myIndicator stopAnimation:nil]; };
请注意,NSTask
如果需要从中访问信息,则传递处理程序。也nil
作为sender
to传递stopAnimation:
- 您通常会传递self
,但这会导致保留循环,并且实际调用该方法的对象并不重要。
您应该能够为NSTask
's设置一个块terminationHandler
。