在Interface Builder中将自定义视图拖到窗口上?

时间:2012-08-08 19:01:09

标签: objective-c xcode user-interface interface-builder

我来自C#和Winforms的世界,我可以在其中构建自定义UserControl并将其拖到表单上,就像它是一个常见的控件一样。有没有办法在Xcode和Interface Builder中做到这一点?

我只看过如何在运行时设置视图,但我想在设计时在窗口看到它。例如,我希望我的自定义视图列在可用的控件中。

谢谢!

西蒙

4 个答案:

答案 0 :(得分:6)

Interface Builder 不会添加(或允许添加,现在IB插件已经废弃)自定义对象到对象库。您只能拖动现有/预设对象,但可以让IB将它们实例化为子类的实例,只要它们以相同的方式实例化即可。

E.g。 在自定义视图中拖动并将课程设置为 MyCustomViewClass或在滚动视图中拖动并将课程设置为 MyCustomScrollView或者拖动一个对象并将该类设置为 CustomObject等等。

这是在Interface Builder中使用自定义控件的首选方式。

enter image description here

答案 1 :(得分:1)

基本上只是扯掉了rdelmar的评论......但我认为一张照片会有所帮助enter image description here

将普通视图拖到IB中,然后选择它并执行此操作。

答案 2 :(得分:1)

您在IB中创建的每个窗口都有一个视图作为其第一个子组件。您不需要为它创建单独的自定义视图。如果你真的是它的子类,只需在检查器中更改类名。

答案 3 :(得分:0)

除了此主题中提到的有关将自定义视图名称添加到视图控制器的XIB文件中的内容之外,您还需要覆盖您的自定义视图中的initWithCoder