2015-05-25 5 views
4

Я создал собственный подкласс UITextField, CustomTextView.UITapGestureRecognizer не работает для пользовательского подкласса UITextField

  • Я создал

    private var tapGesture = UITapGestureRecognizer() 
    

    в customTextView классе

  • В initInView, я следующий код

    tapGesture.addTarget(self, action: "tapTextField:") 
    self.addGestureRecognizer(tapGestureRecognizer) 
    
  • CustomTextView реализует UIGestureRecognizerDelgate

  • CustomTextView имеет частный FUNC имени tapTextField

Теперь, когда я использую IOS симулятор и нажмите на текстовое поле, функция tapTextField никогда не вызывается.

Что мне здесь не хватает? Я видел похожие записи, но никто из них не ответил на мой вопрос. Я не мог комментировать их, поскольку у меня пока нет репутации. Так что задаю новый вопрос.

PS: Это связано с установкой firstResponder? Это чей-то код, над которым я работаю, поэтому я мог что-то пропустить. Дайте мне знать, что я должен искать

Вопросы, относящиеся переполнение стека:

+0

У вас установлено свойство 'isUserInteractionEnabled'? –

+0

Я предполагаю, что isUserInteractionEnabled по умолчанию установлен в true, так как это UITextView, с которым я могу взаимодействовать. Но я все же установил это в явном виде и попытался. Не повезло!! – shrutim

ответ

1

Я не знаю, быстры, но попробуйте изменить этот "tapTextField:" к этому "tapTextField" и убедитесь, что у вас нет аргументов/параметров/безотлагательных вызовов их в вашей функции "tapTextField".

Кроме того, это выглядит как

self.addGestureRecognizer(tapGestureRecognizer) должен быть self.addGestureRecognizer(tapGesture)

0

Вы можете попробовать несколько вещей, чтобы отлаживать эту проблему.

1> Убедитесь, что нет ошибок tapTextField и tapTextField: т. Е. Вы добавляете селектор с аргументом, но вы внедрили тот же метод без каких-либо аргументов.

2> Удостоверьтесь, что никакой другой прозрачный вид не скрывает ваш обычай uitextfield. 3> напечатайте po yourTextFieldName в консоли xcode, чтобы узнать, добавлено ли в вашем текстовом поле какой-либо признак распознавания жестов.

Надеюсь, это поможет