gpt4 book ai didi

ios - 如何在用户停止按下按钮时运行代码?

转载 作者:搜寻专家 更新时间:2023-11-01 06:11:40 26 4
gpt4 key购买 nike

我的密码文本字段旁边有一个眼睛按钮,它应该在用户按下时将文本字段的安全文本输入属性设置为 false,它应该在用户移开手指时结束。

当用户使用带有 touchUpInside 事件的目标按下时,我成功地将该属性设置为 false,但我不知道如何检测到此事件已停止。这就是我要寻找的。

在此之前,我使用了长按手势识别器,但问题是代码需要花费太多时间才能启动。这很正常,因为它是长按,但这不是我想要的行为。

我的代码是:

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")
}
}

最佳答案

您需要管理 3 个事件:.touchDown.touchUpInside.touchUpOutside

您的意图是在按下按钮时显示密码,并在松开手指时隐藏密码,因此如果您仅实现 .touchUpInside 来检测用户停止按下按钮,它将NOT 如果它在按钮外松开手指,则工作。

override func viewDidLoad() {
super.viewDidLoad()
button.addTarget(self, action: #selector(showPassword), for: .touchDown)
button.addTarget(self, action: #selector(hidePassword), for: .touchUpInside)
button.addTarget(self, action: #selector(hidePassword), for: .touchUpOutside)
}

@objc func showPassword(_ sender: Any) {
print("show password")
}

@objc func hidePassword(_ sender: Any) {
print("hide password")
}

关于ios - 如何在用户停止按下按钮时运行代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55102699/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com