OGeek|极客世界-中国程序员成长平台

标题: ios - 文本字段上的 UITapGestureRecognizer 与预期不符 [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-11 20:07
标题: ios - 文本字段上的 UITapGestureRecognizer 与预期不符

在我的类里面,我在一个数组 textViewRecognizer 中有 11 个 UITapGestureRecognizer,连接到数组 boxArray 中的 100 个 UITextField 中的 11 个。当点击包含 UIGestureRecognizer 的 Textfield 时,它会运行 tappedTextView 我尝试获取第一响应者的索引。

但是,由于执行操作的顺序有些奇怪,操作函数只为我提供了前一个第一响应者对刚刚被点击的响应者的第一响应者。

另外,我必须双击才能选择我想要的文本字段!我需要使用点击功能而不是文本代表,所以这真的很头疼。

我有……

    @objc func tappedTextField(_ sender: UITapGestureRecognizer) {
    for i in 0...99 {
        if (boxArray[i]?.isFirstResponder)! {
            if let index = boxArray.index(of: boxArray[i]) {
            print(index)
            break
            }
        }
    }
}

在我看来DidLoad 我有

for i in 0...10 {
        textFieldTapRecognizer[i].addTarget(self, action: #selector(self.tappedTextField(_))
}

在我的课上

我想根据某些条件将 100 个文本字段中的 11 个设置为点击识别器(我将在这里使用常规的 for 循环)

for i in 0...10 {
         boxArray[i]?.addGestureRecognizer(textFieldTapRecognizer[i])
}
  1. 在点击后,我是否可以让它给我实际的第一响应者?

  2. 是否可以通过双击来选择具有 UITapGesture 的文本字段?

非常感谢任何帮助。

已编辑:正确命名的函数



Best Answer-推荐答案


听起来您想删除 UITextView 上的自动编辑行为。您可以使用 textViewShouldBeginEditing(_ textView: UITextView) -> Bool UITextViewDelegate 方法,documented here 获得更多控制权。 .

如果您为该方法返回 false,这应该避免需要双击才能访问您的手势识别器。根据您的用例,您可以通过为您想要实际编辑的 textView 返回 true 来“允许”点击进入 TextView 。

虽然我对您问题的第一响应者部分不是 100% 清楚,但由于 textView 如果没有启动它的编辑模式就不会捕获第一响应者,这应该解决我认为的问题。祝你好运!

关于ios - 文本字段上的 UITapGestureRecognizer 与预期不符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50177364/






欢迎光临 OGeek|极客世界-中国程序员成长平台 (http://ogeek.cn/) Powered by Discuz! X3.4