From 88db6f655ddca9a3158232ab0f2766f85681c7c2 Mon Sep 17 00:00:00 2001 From: Jerome Tan Date: Fri, 11 Mar 2016 15:55:27 +0800 Subject: [PATCH] Restrict the length of verify code. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit If user type in a false verify code, Yep will show a false alert. But after tapped “OK” button, user can continue to entry digits. Now, after implement this method, user cannot entry more than 4 digits which is configured in “YepConfig.verifyCodeLength()”. --- .../Login/LoginVerifyMobileViewController.swift | 9 +++++++++ .../Register/RegisterVerifyMobileViewController.swift | 9 +++++++++ 2 files changed, 18 insertions(+) diff --git a/Yep/ViewControllers/Login/LoginVerifyMobileViewController.swift b/Yep/ViewControllers/Login/LoginVerifyMobileViewController.swift index cb02283c5..78ae005d7 100644 --- a/Yep/ViewControllers/Login/LoginVerifyMobileViewController.swift +++ b/Yep/ViewControllers/Login/LoginVerifyMobileViewController.swift @@ -231,5 +231,14 @@ extension LoginVerifyMobileViewController: UITextFieldDelegate { return true } */ + + func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool { + let currentCharacterCount = textField.text?.characters.count ?? 0 + if range.length + range.location > currentCharacterCount { + return false + } + let newLength = currentCharacterCount + string.characters.count - range.length + return newLength <= YepConfig.verifyCodeLength() + } } diff --git a/Yep/ViewControllers/Register/RegisterVerifyMobileViewController.swift b/Yep/ViewControllers/Register/RegisterVerifyMobileViewController.swift index 5997e90a4..ad5314e70 100644 --- a/Yep/ViewControllers/Register/RegisterVerifyMobileViewController.swift +++ b/Yep/ViewControllers/Register/RegisterVerifyMobileViewController.swift @@ -225,5 +225,14 @@ extension RegisterVerifyMobileViewController: UITextFieldDelegate { return true } */ + + func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool { + let currentCharacterCount = textField.text?.characters.count ?? 0 + if range.length + range.location > currentCharacterCount { + return false + } + let newLength = currentCharacterCount + string.characters.count - range.length + return newLength <= YepConfig.verifyCodeLength() + } }