2015-12-10 2 views
3

Я использую этот код, чтобы закрыть клавиатуру, когда пользователь клика вне TextFieldUITapGestureRecognizer не работает при нажатии на DatePicker

override func viewDidLoad() { 
    ... 
    let tapGesture = UITapGestureRecognizer(target: self, action: "tap:") 
    view.addGestureRecognizer(tapGesture) 
    ... 
} 

func tap(gesture: UITapGestureRecognizer) { 
     txtName.resignFirstResponder() 
} 

Это работает, когда где-нибудь пользователь нажимает за пределами текстового поля, но DatePicker. Когда он называет имя, а затем нажимает на DatePicker (просто кликнуть, а не рулон), крана не распознается.

Что мне делать, чтобы заставить его работать?

ответ

4

Возможно, распознаватель жестов на DatePicker вмешивается в ваши действия. Посмотрите, помогает ли вам эта модификация.

func gestureRecognizer(gestureRecognizer: UIGestureRecognizer, shouldRecognizeSimultaneouslyWithGestureRecognizer otherGestureRecognizer: UIGestureRecognizer) -> Bool { 
    return true //Obviously think about the logic of what to return in various cases 
} 
+0

Извините, что я должен наложить на второй параметр? Потому что я не добавлял никакого специального распознавателя жестов в свой DatePicker – Mucida

+0

Нет, но будет много активных GR активных? На DP есть по крайней мере один и тот, который вы указали на контроллере представления с учетом текстового поля. Вы должны поместить это переопределение в свой код и точку останова. Затем проверьте, какие GR работают. Результаты могут Вас удивить. – Carlos

+0

Я не получаю то, что я должен поставить здесь .... gestureRecognizer (gestureRecognizer: tapGesture, shouldRecognizeSimultaneousWithGestureRecognizer otherGestureRecognizer: ????????) – Mucida

Смежные вопросы