【发布时间】:2016-02-19 15:51:29
【问题描述】:
我的应用程序将文本文件读入[Card]。每张卡片的前面都有一个两个字母的代码,我根据该代码将卡片分成不同的 NSTableView。这让我可以在 IB 中设置布局,以便每组卡片都有适当的显示。
我曾经在一个 VC 中拥有所有控制器代码,但随着表数量的增加,该代码的复杂性也随之增加。由于视图的主要区别在于布局和一些默认设置,它们都可以从一个类继承。所以我做了:
class CardView: NSTableView, NSTableViewDataSource, NSTableViewDelegate { ...
举个例子……
class GeometryView: CardView { ...
然后我去了IB,选择了tableview,并将其类更改为GeometryView。现在我必须设置委托和数据源,这就是我的问题所在:IB 不允许我将任一设置拖到 GeometryView 或 CardView。
那么...这些 IB 设置的目标是否必须是特定的子类,比如 NSViewController?还是我缺少什么让 IB 将这些视为目标?我没有在原始 VC 中做任何事情,它只是工作。还是我只是在 IB 做错事?
在这张图片中,您可以看到最左侧的 tableview、助手中的自定义视图子类以及右侧的 tableview 连接。任何从连接拖动到助手中任何位置的尝试都会失败。请注意,现有的两个连接是到前一个委托 VC,这是我要替换的。
【问题讨论】:
-
添加您正在尝试执行的操作的屏幕截图,按照您描述的方式使用 IB 链接委托或数据源应该没有问题。
-
我没有从截图中看出问题,这是它应该看起来像drive.google.com/file/d/0BxUbHGaoHgxtcUwxTE44Z2FrdlE/…
-
@A-Live:两者之间有区别-似乎您在tableview中有一个tableview?我在 IB 中创建的 tableview 位于 ClipView 中。在您的情况下,您将 tableView 的委托连接到其他对象,而在我的情况下,它是同一个对象。我不相信这也适用于您的示例 - 尝试拖动到“表格视图”。
-
这是在 IB 创建的标准表格视图。
标签: swift nstableview