太多的NSView?

时间:2013-06-04 01:54:10

标签: objective-c cocoa nsview

我想构建一个包含大约400个单元格,4列100个单元格的控制器。必须绘制每个单元并响应鼠标事件。这太重了吗?我应该为每个细胞使用另一种方法,如CALayer或NSCell吗?

1 个答案:

答案 0 :(得分:1)

一般不建议对轻量级对象使用数百(数千)个视图,因为它们是非常重的对象 - 只需查看reference page for NSView即可获得它所处理的各种内容的印象。

我们不太了解您的问题 - 可能是一个简单的表格,可能是某种简单的CAD应用程序,可能是其他任何东西,因此很难判断。

但是,在任何情况下,您都应该至少考虑实施一个自定义NSView实例并跟踪显示为自定义实现的一部分的对象。
跟踪自定义视图中的点击发生的位置并不难 - 特别是如果要以高度规则的方式显示内容(表格,树状视图,......)。

您可以查看Apple的 TreeView 示例(link to ADC site),查看显示结构化内容的单个视图(还有一个附带的WWDC会话,其中包含有关设计决策,实施等的背景信息)