У меня есть кнопка «глаз» рядом с моим текстовым полем пароля, которое, как предполагается, должно установить значение false для свойства безопасного ввода текста текстового поля на время, которое нажимает пользователь, оно должно закончиться, когда пользователь уберет палец.
Мне удалось установить для свойства значение false, когда пользователь нажимает, используя цель с событием touchUpInside, но я не знаю, как определить, что это событие остановлено.И это то, что я ищу.
До этого я использовал распознаватель жестов для длинных нажатий, но проблема в том, что для запуска кода требовалось слишком много времени. Это нормально, потому что это долгое нажатиено это не то поведение, которое я хочу.
Мой код был:
let gesture = UILongPressGestureRecognizer(target: self, action: #selector(eyePressed(sender:)))
passwordEyeButton.addGestureRecognizer(gesture)
@objc func eyePressed(sender : UILongPressGestureRecognizer){
switch sender.state {
case .began :
passwordEyeButton.setImage(eyeImage, for: .normal)
passwordTextField.isSecureTextEntry = false
case .ended :
passwordEyeButton.setImage(crossedEyeImage, for: .normal)
passwordTextField.isSecureTextEntry = true
default :
print("default state")
}
}