如您所见,我可以将任何事件(如 UITouchUpInside)从界面生成器拖到我的代码中。
但是,如果我向 UIButton 添加一些扩展,例如:
protocol SomeProtocol {}
extension UIButton: SomeProtocol {}
我正在使用 Xcode 版本 8.2 (8C38)
我可以以某种方式退回它们吗?它是 Xcode 中的错误吗?
如您所见,我可以将任何事件(如 UITouchUpInside)从界面生成器拖到我的代码中。
但是,如果我向 UIButton 添加一些扩展,例如:
protocol SomeProtocol {}
extension UIButton: SomeProtocol {}
我正在使用 Xcode 版本 8.2 (8C38)
我可以以某种方式退回它们吗?它是 Xcode 中的错误吗?
这似乎是一个 Xcode 错误。
您可以尝试的解决方法是使用协议扩展 UIControl。UIControl 是 UIButton 的超类,所以 UIControl 的扩展是由 UIButton 继承的,当 UIControl 采用协议时,Xcode 似乎并没有感到不安。
protocol SomeProtocol { }
extension UIControl: SomeProtocol { }
来自 Apple 开发者论坛
我遇到了一个类似的问题,我无法将自定义类链接到网点和 IBActions。在我的例子中,我必须使用标准的 UIKit 类将我的对象链接到 IBOutlet,然后我修改了代码以满足我的需要。