使用Xcode和Interface Builder创建原型视图

Alb*_*igo 5 macos xcode cocoa objective-c

我正在构建一个NSView,它是一种集合视图,但它不是表格或网格,而是图形编辑器(类似于石英作曲家).

我现在面临的问题是我想从xib文件中加载原型视图(用于节点).就像UITableView和UICollectionView如何让您在Interface Builder中设计原型单元格一样.但是这些对象如何在多个副本中实例化?

UITableViewController等如何.人.实现这个?

我想过的解决方案:

  • 复制视图,但NSView不支持NSCopying"开箱即用".到目前为止,这似乎是最合乎逻辑的.如果你想将NSView保留在一个storyboard而不是一个中,它似乎也是唯一的选择xib.
  • 加载笔尖然后发送[nib instantiateNibWithOwner:self topLevelObjects:nil]多次.
  • NSView支持,NSCoding但使用它感觉更像是一个黑客.

还有什么想法吗?

我正在开发Mac OS X应用程序,而不是iOS应用程序.

bsh*_*ley -1

你是对的,NSCopying通过实现NSCoding 确实感觉像黑客,但它可能是最快、最可靠的编码方式。

在cocoa/objective-c中复制NSView “相关复制/代码答案”

您可以将视图作为任何给定场景的顶级对象放入故事板中。确保该场景的控制器/加载器有一个出口。您可以将其打包到 NSData 中,并保留您想要制作/取消存档的每个“副本”。