• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

ios - 文本字段上的 UITapGestureRecognizer 与预期不符

[复制链接]
菜鸟教程小白 发表于 2022-12-11 20:07:42 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

在我的类里面,我在一个数组 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/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap