【发布时间】:2016-05-03 04:39:39
【问题描述】:
我想知道如何防止在 UITextfield 中输入某些字符。例如,如果我不希望在此文本字段中输入字母 A、G、P、Q、X,但允许使用其余字母。
我对此很陌生,感谢您的帮助!
【问题讨论】:
-
请检查我的回答是否有帮助?
标签: ios swift uitextfield
我想知道如何防止在 UITextfield 中输入某些字符。例如,如果我不希望在此文本字段中输入字母 A、G、P、Q、X,但允许使用其余字母。
我对此很陌生,感谢您的帮助!
【问题讨论】:
标签: ios swift uitextfield
您需要为此使用 UITextViewDelegate。在其中一个委托方法中捕获用户的输入,并根据需要进行处理。
这里是它的 Apple 参考:
编辑:
您可能需要使用此功能。
func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool {
inputString = inputString.stringByReplacingCharactersInRange(range, withString: string)
这实际上取决于您要如何处理“不允许”特定字符。
【讨论】:
我会用 ASCII 码来处理这类问题。确保包含您的 textField 委托协议(UITextFieldDelegate)并将 textField 委托分配给 self。
func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool {
var singleChar = string
let code = singleChar.unicodeScalars.first?.value
print(code)
if(code == 65 || code == 71 || code == 80 || code == 81 || code == 88 )
{
return false;
}
return true;
}
【讨论】: