如何将 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的主要内容,如果未能解决你的问题,请参考以下文章

如何将Ios文件上传到

Qt如何将文字变成图片?

如何将Bitmap保存为本地图片文件?

在MATLAB中如何将图导出

ASP如何将SQLSERVER数据导出到DBF(VF)

如何将CSV格式转换成JSON格式