不使用 IBOutlet 在 xib 中获取手势识别器的参考

Get reference of gesture recognizer in xib not using IBOutlet

我在一个xib文件中创建了一个单击和双击手势识别器,我想在一个类别中访问它,但是属性中的xib的Referring Outlet无法插入到一个类别中,我可以使用代码访问函数 viewDidLoad 中的手势识别器参考吗?

是的,你可以。视图保留其手势识别器列表,因此您只需要遍历它们即可。

for (UIGestureRecognizer *recognizer in self.gestureRecognizers)
{
    // You need a way to identify it here
}

在这种情况下,如果您的类别正在扩展视图控制器,您只需要知道哪个视图包含您想要的手势识别器。

@property(nonatomic, copy) NSArray<__kindof UIGestureRecognizer *> *gestureRecognizers;

https://developer.apple.com/documentation/uikit/uiview/1622542-gesturerecognizers?language=objc

编辑:

如果您的类别正在扩展 ViewController 将循环更改为 self.view.gestureRecognizers(或您将其附加到的任何其他视图)