我一直在努力解决这个问题,我似乎无法自己解决这个问题。
情况如下: 我希望有一个基于Nib的自定义视图,它有自己的ViewController。然后我想将此视图添加到窗口中。因此,窗口应包含我的自定义视图。
所以我开始创建一个非常简单的例子:
NSViewController
扩展(这会导致nib与.h和.m文件一起创建。创建的.h,.m和.xib文件的名称是FaceViewController
用于测试目的,它现在应该只显示文本。NSViewController.xib
并添加一个多行文本组件并将其放在自定义视图中,该视图已在xib文件中。我让文字跨越整个视图。MyDocument.xib
我还添加了一个Custom View
占位符,应该用我的自定义FaceView替换。从这个起点开始,我尝试在我的MyDocument.xib
上包含创建的View + ViewController的所有内容都失败了,我的文本应该显示的区域仍然是空的(就像底层窗口的背景一样。
所以我的问题确实是我需要做的,所以我的FaceView被加载到我放在MyDocument.xib
的自定义视图中。以下是一些我不清楚的事情:
NSView
扩展,所以我想将其更改为我的FaceView,但视图不作为类存在但是在xib中的InterfaceBuilder中定义,我是否需要将此设置为除NSView
?FaceViewController
或者是否足以将其拖入我的两个.xib中的任何一个?我真的认为创建这样的自定义视图会是一块蛋糕,但到目前为止却完全相反,所以任何帮助都会非常感激。
答案 0 :(得分:4)
您可以通过向MyDocument.xib添加一个或使用alloc,init创建FaceViewController来创建FaceViewController。
要放置FaceView,您必须以编程方式进行,您可以使用
[customView addSubview:[FaceViewController view]];
如果要替换视图
[customView replaceSubview:oldView with:[FaceViewController view]];