【问题标题】:How to add a custom UIButton to Interface Builder Object Library?如何将自定义 UIButton 添加到 Interface Builder 对象库?
【发布时间】:2012-12-08 22:36:17
【问题描述】:

是否可以将子类 UIButton 添加到 XCode 4.5 Interface Builder 对象库,但作为自定义对象?

您可以在这里找到小示例项目:
https://www.dropbox.com/s/ioucpb6jn6nr0hs/blabla1.zip

【问题讨论】:

  • 虽然修改 IB 以支持自定义控件并不是不可能(正如其他人所说),但与仅仅编写相比,这肯定是太多的工作一个子类并以编程方式对其进行初始化。

标签: ios xcode uibutton interface-builder


【解决方案1】:

无法将新对象添加到 Interface Builder 对象库,但您可以将常规 UIButton 拖出,然后在 Identity Inspector 的第三个选项卡中将 Custom Class 属性更改为您的自定义类名称。不过,您不会在 xib 文件中看到任何自定义设置。


我查看了您的示例代码。在 BlaButtonVC.m 你有方法

- (id)initWithFrame:(CGRect)frame

当您从 xib 初始化时,它不会被调用。您需要将该方法中的代码添加到

- (id)initWithCoder:(NSCoder*)coder

我测试了它并且它有效。

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

【讨论】:

  • 感谢您的验证。也尝试了你推荐的方法,但没有成功,在这里你可以找到另一个有这个问题的线程:stackoverflow.com/questions/13786251/…
  • 使用 initWithCoder 方法进行了测试,现在可以正常工作了。优秀的! :) 除了你关于 VC 后缀的建议是绝对有效的,谢谢。
【解决方案2】:

您曾经能够在 Xcode 3 中做到这一点,但如果我没记错的话,那是一个插件的事情(BWToolkit 曾经做到这一点,并在 Xcode 4 中停止了)。您可以制作一个常规的 UIButton 并在检查器窗口中将其类更改为相同的效果。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-31
    • 1970-01-01
    相关资源
    最近更新 更多