Click here to Skip to main content
14,694,079 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
I am designing a login screen app in which I have to implement the OTP verification screen. I googled and found this article, this the same which I want to implement in my app as well. But when I have done the implementation and tried running my app then I was not getting the text field itself.

What I have tried:

I have copied and pasted the same code as given in tutorial but I am not getting the same result.
<pre>import UIKit

class OTPView: UIStackView {

    var textFieldArray = [OTPTextField]()
    var numberOfOTPdigit = 4
    override init(frame: CGRect) {
        super.init(frame: frame)
    required init(coder: NSCoder) {
        super.init(coder: coder)
    //To setup stackview
    private func setupStackView() {
        self.backgroundColor = .clear
        self.isUserInteractionEnabled = true
        self.translatesAutoresizingMaskIntoConstraints = false
        self.contentMode = .center
        self.distribution = .fillEqually
        self.spacing = 5
    //To setup text fields
    private func setTextFields() {
        for i in 0..<numberOfOTPdigit {
            let field = OTPTextField()
            field.delegate = self
            field.backgroundColor = .lightGray
            field.layer.opacity = 0.5
            field.textAlignment = .center
            field.layer.shadowColor =
            field.layer.shadowOpacity = 0.1
            i != 0 ? (field.previousTextField = textFieldArray[i-1]) : ()
            i != 0 ? (textFieldArray[i-1].nextTextFiled = textFieldArray[i]) : ()

extension OTPView: UITextFieldDelegate {
    func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
        guard let field = textField as? OTPTextField else {
            return true
        if !string.isEmpty {
            field.text = string
            return true
        return true

Please confirm me If something is missing in the tutorial or I am doing something wrong.
Updated 11-Jun-20 22:30pm
Richard MacCutchan 12-Jun-20 3:48am
Why not ask the person who wrote the tutorial?

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900