在TextField中键入的字符串数量有限-Swift

时间:2018-07-11 06:08:03

标签: swift uitextfield

我想限制我的用户在TextField内只键入3个单词。我发现了其他一些正在讨论限制输入中的char的话题,但这不是我想要的。

有人知道是否可以计算TextField内的空间,并且如果输入的空格超过3个,则执行if语句,您将无法编写其他内容吗?

  

例如:“在泰国营救的男孩”应该在“被营救的男孩”之后被封锁

提前谢谢!

3 个答案:

答案 0 :(得分:2)

最快的解决方案是使用textField的委托方法shouldChangeCharactersIn

func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
    if let text = textField.text, text.split(separator: " ").count < 3 {
        return true
    }
    return (string == "" || string != " ")
}

答案 1 :(得分:0)

我相信您可以拥有自定义验证功能,该功能将从字段中获取字符串,然后将其拆分为数组。并检查数组的长度。

var fullName = "First Last"
var fullNameArr = split(fullName) {$0 == " "}
var firstName: String = fullNameArr[0]
var lastName: String? = fullNameArr.count > 1 ? fullNameArr[1] : nil

答案 2 :(得分:0)

在TextField委托方法中

func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool

做这样的检查

var wordCount = 0
if let text = textField.text {
    wordCount = text.split(separator: " ").count
}
if wordCount < 3 {
    return true
}
return false