3

我有最简单的用户界面 - 只有一个按钮:在此处输入图像描述

如您所见,我可以将任何事件(如 UITouchUpInside)从界面生成器拖到我的代码中。

但是,如果我向 UIButton 添加一些扩展,例如:

protocol SomeProtocol {}

extension UIButton: SomeProtocol {}

这些事件不再可见: 在此处输入图像描述

我正在使用 Xcode 版本 8.2 (8C38)

我可以以某种方式退回它们吗?它是 Xcode 中的错误吗?

4

2 回答 2

3

这似乎是一个 Xcode 错误。

您可以尝试的解决方法是使用协议扩展 UIControl。UIControl 是 UIButton 的超类,所以 UIControl 的扩展是由 UIButton 继承的,当 UIControl 采用协议时,Xcode 似乎并没有感到不安。

protocol SomeProtocol { }

extension UIControl: SomeProtocol { }

来自 Apple 开发者论坛

向 UIButton 添加 Swift 协议会破坏 Interface Builder 操作选项。

于 2017-01-16T06:21:06.173 回答
0

我遇到了一个类似的问题,我无法将自定义类链接到网点和 IBActions。在我的例子中,我必须使用标准的 UIKit 类将我的对象链接到 IBOutlet,然后我修改了代码以满足我的需要。

于 2017-01-16T01:09:05.293 回答