iOS密码输入框点击Return键无法触发Segue跳转问题排查
iOS UITextField Return键交互异常问题
需求说明
页面已配置两个输入框控件:账号输入框(对应变量loginTextField)、密码输入框(对应变量passwordTextField),需要实现以下交互逻辑:
- 账号输入框输入完成后点击键盘Return键,光标自动跳转聚焦到密码输入框
- 密码输入框点击键盘Return键时,调用
@IBAction func logInButtonPressed()方法校验账号密码正确性,同时触发标识符为showVC的Segue完成页面跳转
现有实现代码
extension MainViewController: UITextFieldDelegate { func textFieldShouldReturn (_ textField: UITextField) -> Bool { if textField == loginTextField { passwordTextField.becomeFirstResponder() } else { logInButtonPressed() performSegue(withIdentifier: "showVC", sender: nil) } return true } }
问题现象
- 账号输入框点击Return键可正常将光标跳转至密码输入框,该段逻辑符合预期
- 密码输入框点击Return键无任何响应
- 已完成以下核查,确认相关配置无异常:
- Segue标识符
showVC设置正确 - 手动点击登录按钮可正常执行校验逻辑并触发页面跳转
- 仅通过密码输入框的Return键触发操作时,Segue无法生效
- Segue标识符
- 已反复核对配置项、检索同类问题均未定位原因,排查时已附上Storyboard中Segue配置截图、
logInButtonPressed()方法实现截图
问题根因
未在viewDidLoad()方法中为密码输入框设置delegate,导致密码输入框的Return点击事件无法进入已实现的UITextFieldDelegate代理回调,对应逻辑自然不会执行。
内容的提问来源于stack exchange,提问作者Reinsannaer
相关产品推荐
相关产品推荐

