以编程方式创建 NSTableView 和自定义 NSViewController

Posted

技术标签:

【中文标题】以编程方式创建 NSTableView 和自定义 NSViewController【英文标题】:Creating an NSTableView and custom NSViewController programmatically 【发布时间】:2014-03-19 06:28:15 【问题描述】:

在 Interface Builder 中创建 NSTableView 并将其连接到 NSViewController 的子类以获取其数据(在 Interface Builder Objects 部分中实例化)没有问题。

现在我想以编程方式创建 NSTableView 和 NSViewController,但我无法弄清楚如何(我是 Cocoa 的新手)。鉴于 NSViewController 子类没有 nib,对此的标准方法是什么?

顺便说一句,我想这样做的原因是我想创建任意数量的小表格视图,它们将在滚动视图中出现(分隔)。这是我会后悔的事情吗?从单个表视图中自定义地狱,使其看起来被分解为多个部分,而不是实际具有单独的表视图会更好吗?

谢谢!

【问题讨论】:

【参考方案1】:

您可以像创建任何其他对象一样使用[[NSTableView alloc] init] 创建表格视图。从那里您可以以相同的方式创建NSTableColumn 实例,并使用addTableColumn: 添加它们,并使用setDataSource: 将其连接到视图控制器。然后使用addSubview: 将其添加到父视图。

几乎所有可以在 Interface Builder 中完成的事情都可以通过这种编程方式完成,尽管它通常更复杂,如果你能提供帮助,不建议这样做。

另一种方法是设计一个新的NSViewController 子类来处理表格,为表格视图创建一个单独的.xib 文件,并根据需要使用initWithNibName:bundle: 实例化每个新的表格视图。

【讨论】:

以上是关于以编程方式创建 NSTableView 和自定义 NSViewController的主要内容,如果未能解决你的问题,请参考以下文章

如何以编程方式更改 NSTableView 高度

以编程方式绑定一个 NSTableView

核心数据、NSTableColumn 绑定和自定义 NSCell

如何在 macOS 10.12+ 上自定义 NSTableView 标头?

核心数据和自定义 NSCell

NSArrayController,以编程方式创建 CoreData 实体,以及 KVO