我一直在努力解决这个问题,我似乎无法自己解决。
情况是这样的:我想要一个自定义的基于 Nib 的视图,它有自己的 ViewController。然后我想将此视图添加到窗口中。因此窗口应该包含我的自定义视图。
所以我开始创建一个非常简单的示例,如下所示:
- 在 Xcode 4 中,我创建了一个新的基于空白文档的 Cocoa 应用程序
- 我创建了一个新的 Cocoa 类,它应该扩展自
NSViewController
(这会导致 nib 与 .h 和 .m 文件一起创建。创建的 .h、.m 和 .xib 文件的名称FaceViewController
用于测试目的,它应该只显示文字暂时。 - 我
NSViewController.xib
在 InterfaceBuilder 中打开并添加一个多行文本组件并将其放置在自定义视图中,该视图已在 xib 文件中。我使文本跨越整个视图。 - 在
MyDocument.xib
我还添加了一个Custom View
占位符,它应该替换为我的自定义 FaceView。
从这个起点开始,我试图在MyDocument.xib
失败时包含创建的 View + ViewController 的所有内容,并且应该显示我的文本的区域仍然是空的(就像底层窗口的背景一样。
所以我的问题确实是我需要做的,以便我的 FaceView 被加载到我放置的自定义视图中MyDocument.xib
。以下是我不清楚的一些事情:
- 自定义视图从扩展,
NSView
因此我想将其更改为我的 FaceView,但视图不作为类存在,而是在 xib 的 InterfaceBuilder 中定义,我是否需要将其设置为除此之外的任何内容NSView
? - 我必须分配、初始化
FaceViewController
in 代码还是将其拖入我的两个 .xib 中的任何一个中就足够了? - 我可以使用 InterfaceBuilder 来放置我的 FaceView 还是必须以编程方式执行此操作?
我真的认为创建这样的自定义视图将是小菜一碟,但到目前为止结果恰恰相反,所以任何帮助将不胜感激。