要求:
禁止用户通过键盘输入或者粘贴字母到UITextField
Hint:可以使用NSCharacterSet
类
在委托中添加代码
func textField(_ textField: UITextField,shouldChangeCharactersIn range: NSRange,replacementString string: String) -> Bool {
let str = string// 方法一:直接判断字符范围,只要存在一个,即返回 falsefor char in str {
if (char >= "A" && char <= "Z") || (char >= "a" && char <= "z") {
return false}}//方法二:使用 NSCharaterSet.letters 判断字符串与集合的关系let charSet = NSCharacterSet.lettersif str.rangeOfCharacter(from: charSet) != nil {
return false}// 禁止多个小数点let existingTextHasDecimalSeparator = textField.text?.range(of: ".")let replacementTextHasDecimalSeparator = string.range(of: ".")if existingTextHasDecimalSeparator != nil,replacementTextHasDecimalSeparator != nil{
return false}else {
return true}}