如何将 LongPressGestureRecognizer 添加到禁用的 TextField
Posted
技术标签:
【中文标题】如何将 LongPressGestureRecognizer 添加到禁用的 TextField【英文标题】:How to add LongPressGestureRecognizer into disabled TextField 【发布时间】:2017-07-29 11:54:10 【问题描述】:我有 isEnabled = false
的 TextField,
现在我正在尝试添加UILongPressGestureRecognizer
在 UITableViewCell 内部:
override func awakeFromNib()
super.awakeFromNib()
let tap = UILongPressGestureRecognizer(target: userNameTextField, action: #selector(userNamelongPressAction))
self.addGestureRecognizer(tap)
但是我崩溃了
'NSInvalidArgumentException',原因:'-[UITextField userNamelongPressAction]: 无法识别的选择器发送到实例
我能做什么? 谢谢
【问题讨论】:
【参考方案1】:这是一个常见的错误,您错误地将目标添加到UITextField
,而您必须将目标设置为您实现方法userNamelongPressAction
的位置
此代码假设您已在此类上下文中实现userNamelongPressAction
方法
override func awakeFromNib()
super.awakeFromNib()
let tap = UILongPressGestureRecognizer(target: self, action: #selector(userNamelongPressAction))
self.addGestureRecognizer(tap)
希望有帮助
【讨论】:
但这会将孔tableview单元格设置为目标,所以我应该继承UITextView并在那里实现这个方法? 你在哪里实现了 userNamelongPressAction? UITableViewCell 内 您正在将您的手势添加到您的 TableViewCell 以再次显示您的 UITextField?所以你的 TableViewCell 必须是目标,因为你的 UITextField 是一个子视图,我认为我的回答对你的要求很好,不能正常工作? 不,因为我的单元格中有不止一个 UITextView,我需要为每一个设置单独的操作..以上是关于如何将 LongPressGestureRecognizer 添加到禁用的 TextField的主要内容,如果未能解决你的问题,请参考以下文章