为什么 iOS 中点击手势识别器的界面生成器操作没有触发?

Why is the interface builder action for tap gesture recognizer in iOS not fire?

在 Xcode 中的 iOS 中,我将点击手势识别器控件拖放到标签上,然后按住控制键拖动点击手势识别器以创建界面构建器操作。当我点击标签时,界面生成器操作不会触发。这是我的代码:

@IBAction func actionTapLabelInstrumentDropDown(_ sender: UITapGestureRecognizer) {

    print("actionTapLabelInstrumentDropDown")

    instrumentDropDown.show()

}

打印语句从不打印。

根据 @rmaddy 在问题下的评论中的观察写一个答案,这样它会更容易被社区看到。

Labels don't response to user interactions by default. You need to enable user interactions on the label.


加上我的两分钱:

如果您的 UILabel 在 Storyboard/NIB 中,您只需选中右侧菜单中的 User Interaction Enabled 复选框。

如果您以编程方式创建 UILabel,则需要调用以下函数才能启用它:

self.myLabel.userInteractionEnabled = true