// // UITextField+Ext.swift // GME Remit // // Created by InKwon Devik Kim on 04/07/2019. // Copyright © 2019 Gobal Money Express Co. Ltd. All rights reserved. // import UIKit extension UITextField { func removeNonASCII() { guard let inputText = text else { return } text = inputText.filter { $0.isASCII } if text != inputText { sendActions(for: .editingChanged) } } func filterForUserIDFormat() { let extractText = text?.extract(regex: "[A-Z0-9a-z._@-]") if text != extractText { text = extractText sendActions(for: .editingChanged) } } } extension UITextField { private var leftViewPadding: CGFloat { return 8 } private var widthOfImageInLeftView: CGFloat { return 35 } func setCoutryFlag(with code: String?) { guard let code = code?.lowercased(), let countryCode = CountryEnum(rawValue: code) else { return } setCoutryFlag(with: countryCode) } func setCoutryFlag(with code: CountryEnum) { let imageView = UIImageView( frame: CGRect(x: leftViewPadding, y: 0, width: widthOfImageInLeftView, height: frame.height) ) imageView.contentMode = .scaleAspectFit imageView.image = code.flag let label = UILabel() label.font = font ?? UIFont.systemFont(ofSize: 14) label.textColor = textColor ?? .black label.text = code.phoneCode label.frame = CGRect( x: leftViewPadding + widthOfImageInLeftView + leftViewPadding, y: 0, width: label.intrinsicContentSize.width, height: frame.height ) let paddingView = UIView( frame: CGRect( x: 0, y: 0, width: leftViewPadding + label.intrinsicContentSize.width + widthOfImageInLeftView + leftViewPadding, height: frame.height ) ) paddingView.addSubview(imageView) paddingView.addSubview(label) paddingView.backgroundColor = .clear leftViewMode = .always leftView = paddingView } }