【问题标题】:Forcing Interface Builder to change class of objects(UIButton->UIControl)强制界面生成器更改对象类(UIButton->UIControl)
【发布时间】:2025-12-17 06:25:02
【问题描述】:

我有一个充满按钮的 UIView,这些按钮都很好地连接到操作和插座。然而,在我无限的智慧中,我决定我真的希望按钮行为不同,并将 UIControl 子类化。

我的计划是进入 Interface Builder,将按钮的类更改为我的新 UIControl 子类,然后启动并运行。这将保留所有出口和操作连接。

在 IB(View Identity Inspector)中,当我在类字段中输入 UIControl 子类时,当我退出时它会恢复为 UIButton。任何 UIButton 子类都有效,但不是 UIControl。我可以沿着继承树往下走,但不能往上走……

第一个计划是转到 XCode 并将我的新控件的超类临时更改为 UIButton,更改我的 IB 按钮的“类”,然后将 XCode 代码超类更改回 UIControl。 IB 接受并更改了课程,但运行该应用程序给了我不可见的按钮。 IB 属性检查器仍将其显示为按钮。

从头开始创建控件并重新接线是可行的,但如果可以避免的话,我希望不要重新接线所有按钮。 (这是我希望在多个应用程序中滚动的更改,所以听起来有点痛苦)

有人知道解决办法吗?

非常感谢!

【问题讨论】:

  • 忘记了我的基本知识。这发生在 XCode/IB 3.2.3 谢谢!

标签: interface-builder uibutton uicontrol inspector


【解决方案1】:

我对此晚了一年,但也许它会在未来对某人有所帮助。也许您可以在文本编辑器中打开 .xib 并找出您必须更改哪些文本才能使其正常工作(首先在示例项目中尝试),然后使用 find 和 replace 一次修复所有这些。

【讨论】: