gpt4 book ai didi

ios - 如何在 UITextView 上实现长按手势

转载 作者:搜寻专家 更新时间:2023-11-01 05:43:46 27 4
gpt4 key购买 nike

是否可以在 UITextView 上实现长按手势?基本上,如果用户在 TextView 上点击一次,我希望他/她能够编辑文本。但是,如果他/她点击并按住 TextView (假设两秒钟),将执行一个操作吗?如果答案是肯定的,请告诉我如何实现这一点?

根据 kchromik 的回答,以下是我的问题的解决方案:

(1) 第一步是在 ViewController 类开始之前定义以下扩展:

extension ViewController: UIGestureRecognizerDelegate { func gestureRecognizer (_ gestureRecognizer: UIGestureRecognizer, shouldRecognizerSimultaneouslyWithotherGestureRecognizer: UIGestureRecognizer) -> Bool { return true}}

(2) 第二步是将 UITextView Outlet 从 Main Storyboard 链接到 swift 代码文件:

@IBOutlet weak var testTextView: UITextView!

(3) 第三步是从对象库中将 GestureRecognizer 拖放到要在其上实现 Longpress 手势识别器的 UITextView 之上。

(4) 第四步是在viewDidLoad()下添加如下代码{

    let uilpgr = UILongPressGestureRecognizer(target: self, action: #selector(ViewController.longpress(gestureRecognizer:)))

uilpgr.minimumPressDuration = 2

testTextView.addGestureRecognizer(uilpgr)

uiplgr.delegate = self

(5) 最后一步是定义与之前定义的 Longpress Gesture Recognizer 一起使用的函数:

func longpress(gestureRecognizer: UIGestureRecognizer) {

print("Long tap") // Execute what you want to do

}

最佳答案

默认情况下,UILabel 禁用用户交互。在您的 viewDidLoad 中尝试 testLabel.isUserInteractionEnabled = true 或在 Storyboard 中启用它:

enter image description here

更新

如果您的 UIView 有自己的手势识别器,您可以实现以下委托(delegate):

extension ViewController: UIGestureRecognizerDelegate {
func gestureRecognizer(_ gestureRecognizer: UIGestureRecognizer, shouldRecognizeSimultaneouslyWith otherGestureRecognizer: UIGestureRecognizer) -> Bool {
return true
}
}

并且不要忘记设置 uilpgr.delegate = self

关于ios - 如何在 UITextView 上实现长按手势,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45664101/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com