2017-02-04 6 views
0

Я получил текстовое поле в моем Swift кодаSwift OnClick TextField изображение

let PassINP: UITextField = { 
    let textField = UITextField() 

    textField.rightViewMode = .always 
    var imageR = UIImageView(frame: CGRect(x:7,y:4,width:24,height:27)) 
    imageR.image = #imageLiteral(resourceName: "eye") 
    var paddingR = UIView(frame: CGRect(x: 0, y: 0, width:40, height: 32)) 
    paddingR.addSubview(imageR) 
    textField.rightView = paddingR 

    textField.isSecureTextEntry = true 
    return textField 
}() 

И я хочу, чтобы вызвать функцию, когда rightView является clicked.How я могу достичь этого?
Я попытался добавить этот код

let tapGesture = UITapGestureRecognizer(target: self, action: #selector(ViewController.rightViewTapped)) 
    paddingR.addGestureRecognizer(tapGesture) 

Но он не работает

ответ

0

За то, что вам нужно добавить TapGesture к rightView вашего UITextField.

//Add UITapGestureRecognizer to your PassINP's rightView `viewDidLoad` 
let tapGesture = UITapGestureRecognizer(target: self, action: #selector(favoriteButtonPressed)) 
PassINP.rightView?.addGestureRecognizer(tapGesture) 

rightViewTapped Теперь добавьте метод для обработки крана на rightView

func rightViewTapped(_ gesture: UITapGestureRecognizer) { 
    print("rightViewTapped") 
} 
+0

я должен поставить эту функцию вне 'PassINP' или внутри? Я выставляю его снаружи и не работает – Centill

+0

@Centill Очевидно, вне блока 'PassINP' с вашей другой функцией, которую вы добавили с вашим классом. –

+0

@Centill Вы пытаетесь добавить действие, теперь оно работает? –

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