将 IBAction 连接到自定义 class

Connect IBAction to custom class

我写了一个名为 PressableView 的自定义 class。它识别点击,然后在其委托对象上调用协议函数。由于是UIView的subclass,默认不允许连接IBAction
我想知道是否有可能将视图控制器内部的函数连接到对象,可按下的视图在其中,因此它会在点击时调用该方法——就像使用 UIButton.[=17= 一样]

我已经尝试过类似的东西:

class PressableView: UIView {
    // ...
    @IBOutlet var action: (() -> Void)?
    // ...
}

...但是,Xcode 不允许该类型为 IBOutlet

有什么想法吗?

PressableView parent class 更改为 UIControl class 然后您可以连接操作并处理它。

UIControl 仅是 UIView class 的子 class。所以你也将拥有 UIView 的所有属性。

class PressableView: UIControl {
     @IBAction func uicontrolEventAction(_ sender: Any) {
    }
}