From e3001c772aa778744c959230742b4a19272d8639 Mon Sep 17 00:00:00 2001 From: sunxiaojian Date: Sat, 24 Apr 2021 20:39:21 -0700 Subject: [PATCH] fix: Handle keyboard return button in register scene --- .../MastodonRegisterViewController.swift | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/Mastodon/Scene/Onboarding/Register/MastodonRegisterViewController.swift b/Mastodon/Scene/Onboarding/Register/MastodonRegisterViewController.swift index 2187ad52..009e2653 100644 --- a/Mastodon/Scene/Onboarding/Register/MastodonRegisterViewController.swift +++ b/Mastodon/Scene/Onboarding/Register/MastodonRegisterViewController.swift @@ -360,6 +360,14 @@ extension MastodonRegisterViewController { // password stackView.setCustomSpacing(6, after: passwordTextField) stackView.setCustomSpacing(32, after: passwordCheckLabel) + + //return + if viewModel.approvalRequired { + passwordTextField.returnKeyType = .continue + } else { + passwordTextField.returnKeyType = .done + } + reasonTextField.returnKeyType = .done // button stackView.addArrangedSubview(buttonContainer) @@ -619,6 +627,28 @@ extension MastodonRegisterViewController: UITextFieldDelegate { } } + func textFieldShouldReturn(_ textField: UITextField) -> Bool { + switch textField { + case usernameTextField: + displayNameTextField.becomeFirstResponder() + case displayNameTextField: + emailTextField.becomeFirstResponder() + case emailTextField: + passwordTextField.becomeFirstResponder() + case passwordTextField: + if viewModel.approvalRequired { + reasonTextField.becomeFirstResponder() + } else { + passwordTextField.resignFirstResponder() + } + case reasonTextField: + reasonTextField.resignFirstResponder() + default: + break + } + return true + } + func showShadowWithColor(color: UIColor, textField: UITextField) { // To apply Shadow textField.layer.shadowOpacity = 1