man*_*tee 3 textfield ios swift
我正在输入信用卡信息,我希望有效期限最多为5个字符4个数字,并且"/"会在前两个字符后自动输入,即01/17后输入01自动输入,并且只允许两个更多人物"17".
func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool
{
if textField == expire{
}
return true
}
Run Code Online (Sandbox Code Playgroud)
基于@Jigar答案的Swift 4解决方案:
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
if range.length > 0 {
return true
}
if string == "" {
return false
}
if range.location > 4 {
return false
}
var originalText = textField.text
let replacementText = string.replacingOccurrences(of: " ", with: "")
//Verify entered text is a numeric value
if !CharacterSet.decimalDigits.isSuperset(of: CharacterSet(charactersIn: replacementText)) {
return false
}
//Put / after 2 digit
if range.location == 2 {
originalText?.append("/")
textField.text = originalText
}
return true
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2703 次 |
| 最近记录: |