如何将自定义的UIButton添加到Interface Builder对象库中?

5

虽然修改IB以支持自定义控件并非不可能(正如其他人所述),但与编写子类并以编程方式初始化相比,这显然需要太多的工作。 - CodaFi
2个回答

4

无法向Interface Builder对象库添加新对象,但您可以拖动普通的UIButton,并在Identity Inspector的第3个选项卡中更改Custom Class属性为您的自定义类名称。但是,在xib文件中您将看不到任何自定义内容。


我查看了您的示例代码。在BlaButtonVC.m中,您有一个方法

- (id)initWithFrame:(CGRect)frame

当你从xib初始化时,这个方法不会被调用。你需要在那个方法中添加代码:

- (id)initWithCoder:(NSCoder*)coder

我测试了它,它起作用了。

顺便说一下,我认为BlaButtonVC不是一个好的名称,因为它暗示你的类是一个视图控制器,而实际上它是一个视图(除非在你的项目中VC代表其他意思)。


谢谢您的验证。我尝试了您推荐的方法,但是不起作用,以下是包含此问题的另一个线程链接: https://dev59.com/aGvXa4cB1Zd3GeqPNdyx - gabor.orosz
已使用initWithCoder方法进行测试,现在它可以正常工作了。太好了! :) 此外,您关于VC后缀的建议绝对是正确的,非常感谢。 - gabor.orosz

1

在Xcode 3中,您曾经可以做到这一点,但如果我记得正确的话,那是一个插件的事情(BWToolkit曾经做过这个,但随着Xcode 4的推出而停止了)。不过,您可以创建一个普通的UIButton,并在检查器窗口中更改其类以达到相同的效果。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接