在我的班级中,我在数组 textViewRecognizer 中有 11 个 UITapGestureRecognizer,附加到数组 boxArray 中 100 个 UITextField 中的 11 个。当点击包含 UIGestureRecognizer 的文本字段时,它会运行 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])
}
无论如何,我可以让它在点击后给我真正的第一响应者吗?
是否有办法绕过双击来选择具有 UITapGesture 的文本字段?
任何帮助是极大的赞赏。
编辑:正确命名的函数
听起来您想删除自动编辑行为UITextView
。您可以通过以下方式获得更多控制权textViewShouldBeginEditing(_ textView: UITextView) -> Bool
UITextViewDelegate
方法,记录在这里.
如果你回来false
对于该方法,这应该避免需要双击才能访问手势识别器。根据您的用例,您可以通过返回来“允许”点击进入文本视图true
对于您想要实际编辑的textView。
虽然我对您问题的第一响应者部分不是 100% 清楚,但由于 textView 如果没有启动其编辑模式,则不会捕获第一响应者,因此我相信这应该解决这个问题。祝你好运!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)