0

Я пытаюсь создать клавиатуру, которая позволяет использовать один кран, двойной кран и тройной кран. Поэтому я хочу добавить UITapGestureRecognizer() к каждой кнопке на моей клавиатуре. Я знаю, как это сделать вручную из файла xib (добавьте каждую букву, это собственный жест, на который потребуется возраст), но не совсем уверен, как это сделать в контроллере.Добавьте жесты одного, двойного и тройного нажатия на все «кнопки» на пользовательской клавиатуре быстрым

Я написал это для двойного нажатия в методе viewDidLoad():

let doubleTap: UITapGestureRecognizer = UITapGestureRecognizer(target: self, action: "doubleTapCharacter:") 
doubleTap.numberOfTapsRequired = 2 

for button in self.view.subviews{ 
     button.addGestureRecognizer(doubleTap) 
} 

и создал метод с doubleTapCharacter(), но она по-прежнему не работает. Я также хочу иметь возможность отправлять информацию в метод doubleTapCharacter.

Любая помощь будет высоко оценена. Кроме того, я очень новичок в быстром, поэтому, если инструкции сложны, я бы очень признателен, если вы можете немного сломать их.

+1

вы должны создать ** один gesturerecognizer за просмотр **. поэтому переместите первые две строки в цикл for. –

ответ

2

создать и добавить жест распознавателей:

for button in view.subviews { 
    // create the gesture recognizer 
    let doubleTapRecognizer = UITapGestureRecognizer(target: self, action: "doubleTapCharacter:") 
    doubleTapRecognizer.numberOfTapsRequired = 2 

    // add gesture recognizer to button 
    button.addGestureRecognizer(doubleTapRecognizer) 
} 

затем реализовать целевой метод:

func doubleTapCharacter(doubleTapRecognizer: UITapGestureRecognizer) { 
    let tappedButton = doubleTapRecognizer.view as! UIButton 
    print(tappedButton.titleForState(UIControlState.Normal)) 
} 
+0

Удивительно, спасибо, много! Теперь работает!! Мне просто нужно добавить восклицательный знак в конце инструкции печати '.Normal)!)' – sometimes24