fs_*_*gre 0 uitextfield ios swift
我希望能够限制可以输入到文本字段中的字符,例如,我只想限制1-5个数字(1、2、3和5),并且如果用户输入的数字大于5 ,我希望textField不执行任何操作。
我已经看到了如何限制长度,但是如上所述,我找不到任何用于限制某些字符的内容。
我尝试使用,editingQtyFieldChanged
但并不能完全满足我的要求。
myField.addTarget(self, action: #selector(UserInputViewController.fieldChanged), forControlEvents: UIControlEvents.EditingChanged)
func fieldChanged(){
let number = Int(myField.text!)
if number < 2{
print("Number not allowed")
}
}
Run Code Online (Sandbox Code Playgroud)
在Swift的uitextfield中仅限制数字1-5?
编辑:这是我的解决方案,这要归功于该线程。
func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool {
let numbers = ["6","7","8", "9"]
for number in numbers{
if string == number{
return false
}
}
}
Run Code Online (Sandbox Code Playgroud)
我这样做是作为字符串扩展名
extension String {
var containsValidCharacter: Bool {
let characterSet = CharacterSet(charactersIn: "12345")
let range = (self as NSString).rangeOfCharacter(from: characterSet)
return range.location != NSNotFound
}
}
Run Code Online (Sandbox Code Playgroud)
然后用你的shouldChangeCharactersIn
方法。
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
return !string.containsValidCharacter
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2609 次 |
最近记录: |