Dyl*_*and 6 uitextfield swift swift2
我正在创建一个在启动时要求输入用户名的琐事应用程序。我想让它无法使用诸如 #$@!^& 等字符(还包括“空格”)。我在这里查看了这篇文章,但它完全是用 Objective-C 编写的。提前致谢。
Swift 4 iOS 11.2.x 基于使用扩展,在此示例中测试字符串是否为有效的十六进制数。
extension String {
var containsValidCharacter: Bool {
guard self != "" else { return true }
let hexSet = CharacterSet(charactersIn: "1234567890ABCDEFabcdef")
let newSet = CharacterSet(charactersIn: self)
return hexSet.isSuperset(of: newSet)
}
}
Run Code Online (Sandbox Code Playgroud)
您可以像使用 UITextFieldDelegate 一样使用它。
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
return (string.containsValidCharacter)
}
Run Code Online (Sandbox Code Playgroud)
虽然我在之前的一篇文章中读到 CharacterSets 不支持由多个 Unicode.Scalar 组成的字符;所以我想请谨慎使用。
小智 2
internal func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool{
if let text = string{
if text == "#" || text == "$" || text == "!"{ \\and so on
return false
}
}
return true
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
9386 次 |
最近记录: |