//
// NVOTPView.swift
// OTPVarification
//
// Created by naman vaishnav on 22/11/18.
// Copyright © 2018 naman vaishnav. All rights reserved.
//
import Foundation
import UIKit
class NVOTPView: UIView {
let stackView = UIStackView()
var arrTextField = [UITextField]()
override func awakeFromNib() {
setupView()
}
func setupView() {
customizeStackView()
self.layoutIfNeeded()
self.layoutSubviews()
stackView.frame = self.frame
stackView.center = self.center
self.addSubview(stackView)
self.layoutIfNeeded()
self.layoutSubviews()
}
func customizeStackView(){
stackView.axis = .horizontal
stackView.distribution = .fillEqually
for item in 0...3 {
let txt = UITextField()
txt.text = "\(item)"
// txt.becomeFirstResponder()
txt.isUserInteractionEnabled = true
txt.delegate = self
arrTextField.append(txt)
stackView.addArrangedSubview(txt)
}
}
}
extension NVOTPView: UITextFieldDelegate {
func textFieldShouldBeginEditing(_ textField: UITextField) -> Bool {
// return NO to disallow editing.
print("TextField should begin editing method called")
return true
}
func textFieldDidBeginEditing(_ textField: UITextField) {
// became first responder
print("TextField did begin editing method called")
}
func textFieldShouldEndEditing(_ textField: UITextField) -> Bool {
// return YES to allow editing to stop and to resign first responder status. NO to disallow the editing session to end
print("TextField should snd editing method called")
return true
}
func textFieldDidEndEditing(_ textField: UITextField) {
// may be called if forced even if shouldEndEditing returns NO (e.g. view removed from window) or endEditing:YES called
print("TextField did end editing method called")
}
private func textFieldDidEndEditing(_ textField: UITextField, reason: UITextField.DidEndEditingReason) {
// if implemented, called in place of textFieldDidEndEditing:
print("TextField did end editing with reason method called")
}
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
// return NO to not change text
print("While entering the characters this method gets called")
return true
}
func textFieldShouldClear(_ textField: UITextField) -> Bool {
// called when clear button pressed. return NO to ignore (no notifications)
print("TextField should clear method called")
return true
}
func textFieldShouldReturn(_ textField: UITextField) -> Bool {
// called when 'return' key pressed. return NO to ignore.
print("TextField should return method called")
// may be useful: textField.resignFirstResponder()
return true
}
}