Затем я бы добавил следующий метод Delegate:
м классе у меня есть 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 textFields, чтобы иметь этот распознаватель касаний в зависимости от некоторых условий (я просто собираюсь использовать обычный цикл for здесь)
for i in 0...10 {
boxArray[i]?.addGestureRecognizer(textFieldTapRecognizer[i])
}
Могу ли я в любом случае получить его, чтобы дать мне фактического первого респондента после того, как был сделан кран?
Есть ли способ обойти двойное касание, чтобы выбрать текстовое поле с UITapGesture?
Любая помощь очень ценится.
Отредактировано: правильно названные функции