Ios 验证文本字段中的条目

Ios 验证文本字段中的条目,ios,swift,string,uitextfield,textfield,Ios,Swift,String,Uitextfield,Textfield,我有一个textfield,它允许用户输入文本,并将文本保存到变量中,并将其存储在用户默认值中。我需要输入是一个字符串,因此我需要textfield来检测输入是否为字符串以外的任何内容。如何执行此操作?默认情况下,textField.text属性是一个字符串。 如果您不希望用户输入任何数字,您可以在保存到userdefaults之前参考此项来确定输入日期 另一个Swift职位- 您可以使用此代码 func textField(_ textField: UITextField, shouldCha

我有一个textfield,它允许用户输入文本,并将文本保存到变量中,并将其存储在用户默认值中。我需要输入是一个字符串,因此我需要textfield来检测输入是否为字符串以外的任何内容。如何执行此操作?

默认情况下,textField.text属性是一个字符串。 如果您不希望用户输入任何数字,您可以在保存到userdefaults之前参考此项来确定输入日期

另一个Swift职位-

您可以使用此代码

func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
    let characterSet = NSCharacterSet.letters
    return (string.rangeOfCharacter(from: characterSet) != nil)
}

确保您已正确设置了
文本字段的
委托

请尝试此代码。希望对你有帮助

func updateSaveButtonState() {
    let text = titleTextField.text ?? ""
    saveButton.isEnabled = !text.isEmpty
}


@IBAction func textEditingChanged(_ sender: UITextField) {
    updateSaveButtonState()
}

@IBAction func returnPressed(_ sender: UITextField) {
    titleTextField.resignFirstResponder()
}

请尝试以下代码:swift 4.0

func validateOnlyLetters(text: String) -> Bool {
    let characterSet = CharacterSet.decimalDigits
    return (text.rangeOfCharacter(from: characterSet) == nil)
}

在文本字段中,你不考虑字符串?在文本字段中的每一个都是字符串。你需要确定你自己认为什么是有效字符串的规则,并与这些字符串进行比较。我需要验证输入是否为字符串(不能是整数/双精度,如5或5.3)。您的textfield中只需要字母字符?是的,它需要是字母@Rajat,因为textfield用于输入名称。顺便说一句,文本文件处于警报控制器中,这正是我所需要的;保存前验证输入。这篇文章是在Objective C中,但是我使用的是swift,我不理解它引用这篇文章后,我知道这个解决方案被反复使用,但这确实是一个非常低效的方法来验证字符串中的字符。@rmaddy这个解决方案有什么问题。我是一个noob:)将整个字符串拆分为一个数组,然后将所有数组元素重新连接回一个字符串,然后比较这两个字符串以查看原始字符串是否包含有效字符,这是非常低效的。
func validateOnlyLetters(text: String) -> Bool {
    let characterSet = CharacterSet.decimalDigits
    return (text.rangeOfCharacter(from: characterSet) == nil)
}