4

我需要显示加载项的子项的进度。请告知如何像在邮件应用程序中那样实现进度指示器:

大纲视图中的进度指示器 http://www.quicksnapper.com/files/10513/5329281414A48CEBA2FFE0_m.png

PS 这里是使用指标子视图的源代码:http: //snippets.dzone.com/posts/show/7684

4

3 回答 3

6

这比它应该做的更难,因为 Apple 没有提供 NSProgressIndicatorCell。虽然表格和大纲视图支持在其中显示自定义单元格的想法,但它们并未设置为轻松支持自定义子视图。

所以诀窍就变成了,你如何获得一个完整的 NSProgressIndicator 视图以在窗口中的所需位置显示和动画,而不能将它实际安装在表视图行中?

我使用的技巧是将 NSProgressIndicator 安装为大纲或表格视图本身的子视图。要找到添加子视图的位置,使其看起来像“在行中”,请使用 frameOfCellAtColumn:row: 方法。然后,您可以将进度指示器放置在大纲视图的该位置。完成进度指示器的旋转后,您可能不想再显示它,因此只需将其从其超级视图中删除并丢弃即可。

您需要确保在进度指示器上设置所需的自动调整大小标志,以便在调整大纲视图大小时/如果调整大小,它会以正确的方向浮动。

我确信还有其他类似的技巧可以达到预期的最终结果。我不认为有任何超级干净的方法来完成这个技巧。

于 2009-06-29T15:03:05.900 回答
3

Vienna是一个开源(Apache 许可)提要阅读器,其源代码列表中有此内容。您应该查看Vienna 源代码以了解他们是如何做到的。

于 2009-06-29T15:30:30.180 回答
2

Viena 的实施并不完美。将提要添加到文件夹,然后在加载并且进度指示器忙折叠该文件夹时。您将看到进度指示器仍在同一位置运行。

于 2009-08-11T16:37:43.197 回答