В моем классе у меня есть 11 UITapGestureRecognizer в массиве textViewRecognizer, прикрепленном к 11 из 100 UITextFields в массиве boxArray. При нажатии на текстовое поле, содержащее 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
}
}
}
}
по моему мнению, у меня есть
for i in 0...10 {
textFieldTapRecognizer[i].addTarget(self, action: #selector(self.tappedTextField(_:)))
}
В моем классе у меня
Я хочу установить 11 из 100 текстовых полей, чтобы иметь этот распознаватель касаний в зависимости от некоторых условий (здесь я просто собираюсь использовать обычный цикл for)
for i in 0...10 {
boxArray[i]?.addGestureRecognizer(textFieldTapRecognizer[i])
}
Могу ли я в любом случае получить его, чтобы дать мне фактического первого респондента, после того, как был сделан сигнал?
Можно ли в любом случае обойти двойное касание, чтобы выбрать текстовое поле с UITapGesture?
Любая помощь очень ценится.
Отредактировано: правильно названные функции