Ios 如何将LongPressGestureRecognitor添加到禁用的文本字段

Ios 如何将LongPressGestureRecognitor添加到禁用的文本字段,ios,swift,uitextfield,uitapgesturerecognizer,Ios,Swift,Uitextfield,Uitapgesturerecognizer,我有一个isEnabled=false的文本字段 现在我正在尝试添加ui长按手势识别器 UITableViewCell内部: override func awakeFromNib() { super.awakeFromNib() let tap = UILongPressGestureRecognizer(target: userNameTextField, action: #selector(userNamelongPressAction)) self.addGestu

我有一个
isEnabled=false
的文本字段

现在我正在尝试添加
ui长按手势识别器


UITableViewCell内部:

override func awakeFromNib() {
    super.awakeFromNib()
    let tap = UILongPressGestureRecognizer(target: userNameTextField, action: #selector(userNamelongPressAction))
    self.addGestureRecognizer(tap)
}
但我会崩溃

“NSInvalidArgumentException”,原因:”-[UITextField userNamelongPressAction]:发送到实例的选择器无法识别

我能做什么?
感谢这是一个常见错误,您将目标错误地添加到
UITextField
,而必须将目标设置为实现方法
userNamelongPressAction

此代码假设您已经在此类上下文中实现了
userNamelongPressAction
方法

override func awakeFromNib() {
    super.awakeFromNib()
    let tap = UILongPressGestureRecognizer(target: self, action: #selector(userNamelongPressAction))
    self.addGestureRecognizer(tap)
}

希望此帮助这是一个常见错误,您将目标错误地添加到
UITextField
,而必须将目标设置为实现方法
userNamelongPressAction

此代码假设您已经在此类上下文中实现了
userNamelongPressAction
方法

override func awakeFromNib() {
    super.awakeFromNib()
    let tap = UILongPressGestureRecognizer(target: self, action: #selector(userNamelongPressAction))
    self.addGestureRecognizer(tap)
}

希望这有帮助

但这会将hole tableview单元格设置为目标,因此我应该在那里将UITextView子类化并实现此方法?在那里实现了用户名LongPressAction?在UITableViewCell内您正在将手势添加到TableViewCell以再次显示UITextField?所以你的TableViewCell必须是目标,因为你的UITextField是一个子视图。我认为我的答案很适合你的要求,不能正常工作?不,因为我的单元格中有不止一个UITextView,每个UITextView都需要设置单独的操作。但是这会将hole tableview单元格设置为目标,因此,我应该将UITextView子类化,并在那里实现此方法?在哪里实现了用户名LongPressAction?在uitableViewCell中,您正在将手势添加到TableViewCell以再次显示UITextField?因此,您的TableViewCell必须是目标,因为您的UITextField是一个子视图。我认为我的答案符合您的要求,但不能正常工作?不,因为我的单元格中有多个UITextView,并且对于每个UITextView,我需要设置单独的操作。。