【发布时间】:2019-01-08 22:06:51
【问题描述】:
尝试为信用卡到期日期设置textField,以下代码正常工作只是为了改变行为,目前当您从第三个数字输入时,/ 字符将添加为过期格式。如果我想在用户输入第二个数字后添加 / 字符,例如如果用户输入 01 直接插入分隔符
open func reformatAsExpiration(_ textField: UITextField) {
guard let string = textField.text else { return }
let expirationString = String(ccrow.expirationSeparator)
let cleanString = string.replacingOccurrences(of: expirationString, with: "", options: .literal, range: nil)
if cleanString.length >= 3 {
let monthString = cleanString[Range(0...1)]
var yearString: String
if cleanString.length == 3 {
yearString = cleanString[2]
} else {
yearString = cleanString[Range(2...3)]
}
textField.text = monthString + expirationString + yearString
} else {
textField.text = cleanString
}
}
【问题讨论】:
-
我建议使用选择器视图作为您的 UITextField 输入视图。 developer.apple.com/documentation/uikit/uitextfield/…
-
我认为你应该为此使用 datepicker