将 NSProgressIndicators 添加到 NSOutlineView 子类
我正在使用出色的 PXSourceList 控件的经过大量修改的版本来模拟其他流行的 OS X 源列表。不幸的是,我在尝试将 NSProgressIndicator 添加到所述源列表中的行时遇到了一些问题。
PXSourceList 充当标准 NSOutlineView 控件的子类,并与示例 SourceListItem 类(一个骨架 NSObject 子类)一起打包。 PXSourceList 及其 SourceListItem 的渲染是在 PXSourceList 的 drawRow:clipRect:
方法中处理的,这是我的问题的根源。
我试图找到允许每个 SourceListItem 有选择地显示 NSProgressIndicator 的最佳方法。直觉告诉我应该创建一个自定义单元,但我不确定应该如何最佳地实现一个像样的解决方案。
任何和所有的帮助将不胜感激。
I'm using a heavily modified version of the fantastic PXSourceList control to emulate other popular OS X source lists. Unfortunately I've run into some issues while attempting to add NSProgressIndicator's to rows within said source list.
PXSourceList acts as a subclass of the standard NSOutlineView control and comes packaged with an example SourceListItem class (a skeletal NSObject subclass). Rendering of the PXSourceList and its SourceListItem's is handled in PXSourceList's drawRow:clipRect:
method, which is the source of my problem.
I'm trying to find the best way of allowing each SourceListItem to optionally display an NSProgressIndicator. Instinct tells me I should be creating a custom cell, but I'm unsure as to how I should optimally implement a decent solution.
Any and all help would be appreciated.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
Apple 示例代码中有一个很好的示例可以执行此操作(可惜没有使用 PXSourceList)。
动画 TableView 示例
另请参阅此答案以获取评论和一些示例代码的链接:
如何在 NSOutlineView 中显示不确定的 NSProgressIndicator?
本质上,由于它们没有 NSProgressIndicatorCell 类,因此您需要创建一个包含 NSProgressIndicatorView 的子视图并将其显示在表视图中的适当行中。
There is a great example in the Apple Sample code that does this (alas not using PXSourceList).
Animated TableView Sample
Also look at this answer for commentary and links to some sample code:
How to display indeterminate NSProgressIndicator in the NSOutlineView?
In essence, as their is no NSProgressIndicatorCell class, you need to create a subview containing an NSProgressIndicatorView and display it at the appropriate row in your tableview.