gpt4 book ai didi

swift - 如何在 Swift 中限制 UITextField 中的某些字符?

转载 作者:搜寻专家 更新时间:2023-10-31 21:54:38 24 4
gpt4 key购买 nike

我正在创建一个在启动时要求输入用户名的问答应用程序。我想让它无法使用诸如 #$@!^& 等字符(也包括“空格”)。我看了这篇帖子here但它完全是用 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)
}
}

您可以像使用 UITextFieldDelegate 一样使用它。

func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
return (string.containsValidCharacter)
}

虽然我在之前的帖子中读到 CharacterSets 不支持由多个 Unicode.Scalar 组成的字符;所以我想请谨慎使用。

关于swift - 如何在 Swift 中限制 UITextField 中的某些字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36925882/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com