我希望能够限制可输入文本字段的字符,例如我想限制为仅1-5个数字(1,2,3和5)以及用户是否输入数字大于5,我希望textField什么都不做。
我已经看到了如何限制长度,但我无法找到任何限制某些角色的内容,正如我在上面所描述的那样。
我尝试使用<li id="myMemberStatsBestResponses" class="ms-comm-myMemberStatsItem"><span class="ms-comm-reputationNumbers">199</span> best replies</li>
,但它并没有完全符合我的要求。
editingQtyFieldChanged
在Swift中的uitextfield中仅限制为数字1-5?
编辑:这是我的解决方案,感谢this主题。
myField.addTarget(self, action: #selector(UserInputViewController.fieldChanged), forControlEvents: UIControlEvents.EditingChanged)
func fieldChanged(){
let number = Int(myField.text!)
if number < 2{
print("Number not allowed")
}
}
答案 0 :(得分:4)
我这是一个字符串扩展名
extension String {
var containsValidCharacter: Bool {
let characterSet = CharacterSet(charactersIn: "12345")
let range = (self as NSString).rangeOfCharacter(from: characterSet)
return range.location != NSNotFound
}
}
然后在您的shouldChangeCharactersIn
方法中。
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
return !string.containsValidCharacter
}
答案 1 :(得分:1)
在textFieldDidEndEditing委托中,解析文本并将其转换为数字。如果数字不在您的范围内,则将文本设置为其先前的值或采取适当的任何操作。