仅将点击手势识别器添加到不可编辑的 UITextfield 文本中

问题描述 投票:0回答:1

我正在像这样的表格视图中添加点击手势识别器。

# let tapGestureRecognizer = CustomTapGestureRecogniser(target: self, action: #selector(openMethod(tapGestureRecognizer:)))
                        tapGestureRecognizer.data = indexPath.row
                        cell.textField.isUserInteractionEnabled = true
                        cell.textField.addGestureRecognizer(tapGestureRecognizer)

但是整个文本字段都是可单击的,我只需要单击文本即可实现此功能

ios swift macos ipad
1个回答
0
投票

你可以用这个技巧得到它:

textField.subviews[1].subviews.first?.subviews[2]

当 UIViewController 渲染时,您可以在 3D 视图中看到视图:

查看视图的层次结构:

之后你就可以得到它了

注意,在iOS SDK的更新中它可能会改变,你应该检查它是否存在:

if textField.subviews.count > 1,  
textField.subviews[1].subviews.count > 0, textField.subviews[1].subviews.first?.subviews.count > 2 {
textField.subviews[1].subviews.first?.subviews[2]
}

您可以使用 PO(打印对象命令)查看视图的层次结构,如下所示:

© www.soinside.com 2019 - 2024. All rights reserved.