如何显示在NSOutlineView不确定NSProgressIndicator?(How to d

2019-06-24 10:49发布

我需要显示项目的儿童加载的进度。 请指教如何像它在邮件应用程序的完成实现进度指示器:

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

PS这里使用指示器子视图的一个源代码: http://snippets.dzone.com/posts/show/7684

Answer 1:

这是难度比它应该是,因为苹果不提供NSProgressIndicatorCell。 而表和大纲视图支持自定义细胞的想法在其中显示,他们都没有设立,以轻松支持自定义子视图。

因此,关键变成,你怎么AA完整NSProgressIndicator视图来显示和动画在你的窗口所需的点,没有实际的表视图行中安装的能力吗?

我使用的技巧是从字面上安装NSProgressIndicator为纲或表视图本身的一个子视图。 为了找到添加的子视图的位置,所以它看起来像它的“行”,使用frameOfCellAtColumn:行:方法。 然后,您可以在大纲视图,该位置中定位您的进度指示器。 当你完成旋转进度指示器,你可能不希望任何更多的表现出来,所以只是从它的父删除它,抛弃它。

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

我敢肯定还有其他的黑客这样达到期望的最终结果。 我不认为有任何超洁净的方式来完成这一招。



Answer 2:

维也纳是一个开源(Apache许可)feed阅读器具有此在其源列表。 你应该看看维也纳的源代码 ,看看他们是如何做到的。



Answer 3:

维也纳的实现是不完美的。 饲料添加到一个文件夹,然后它加载和进度指示器忙瓦解该文件夹。 您将看到进度指示器仍然在相同的位置上运行。



文章来源: How to display indeterminate NSProgressIndicator in the NSOutlineView?