使用笔尖创建自定义视图并在窗口中使用它

我一直在努力解决这个问题,我似乎无法自己弄清楚。

这是情况:我想拥有一个自定义的基于Nib的视图,并带有自己的ViewController。 然后我想把这个视图添加到一个窗口中。 因此窗口应该包含我的自定义视图。

所以我着手创建一个非常简单的例子:

  • 在Xcode 4中,我创建了一个新的基于空白文档的Cocoa应用程序
  • 我创建了一个新的Cocoa类,它应该从NSViewController扩展(这导致nib与.h和.m文件一起创建)。创建的.h,.m和FaceViewController文件的名称是FaceViewController用于测试目的它应该现在只显示文字。
  • 我在InterfaceBuilder中打开NSViewController.xib并添加一个多行文本组件,并将其放置在已存在于xib文件中的自定义视图中。 我让文本跨越整个视图。
  • MyDocument.xib我还添加了一个Custom View占位符,它应该替换为我自定义的FaceView。
  • 从这个起点开始,我试图在我的MyDocument.xib包含创建的View + ViewController失败,我的文本应该显示的区域保持为空(就像底层窗口的背景一样。

    所以我的问题真的是我需要做的,以便我的FaceView被加载到我放在MyDocument.xib的Custom View中。 以下是我不清楚的一些事情:

  • 自定义视图从NSView扩展,所以我想改变这是我的FaceView,但该视图不作为一个类存在,但在xib中的InterfaceBuilder中定义,我需要将此设置为除NSView以外的任何其他吗?
  • 我必须分配,在代码中初始化FaceViewController还是足以将其拖入我的两个.xib中的任何一个?
  • 我可以使用InterfaceBuilder放置我的FaceView,还是必须以编程方式执行此操作?
  • 我真的认为创建一个像这样的自定义视图是一块蛋糕,但到目前为止,结果却完全相反,所以任何帮助都将不胜感激。


    您可以通过向MyDocument.xib添加一个或使用alloc,init创建FaceViewController来创建您的FaceViewController。

    要放置您的FaceView,您必须以编程方式进行,您可以使用

    [customView addSubview:[FaceViewController view]];
    

    如果你想替换视图

    [customView replaceSubview:oldView with:[FaceViewController view]];
    
    链接地址: http://www.djcxy.com/p/53611.html

    上一篇: Create a custom view using a nib and use it in a window

    下一篇: Efficiently sort an IList<T> without copying the source list