我有一个文本字段,允许用户输入文本并将此文本保存到变量并将其存储在用户默认值中。我需要输入是一个字符串,因此我需要textfield来检测输入是否只是一个字符串。我怎么能这样做?
答案 0 :(得分:0)
您可以使用此代码
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
let characterSet = NSCharacterSet.letters
return (string.rangeOfCharacter(from: characterSet) != nil)
}
确保您已delegate
正确设置textfield
答案 1 :(得分:0)
试试这段代码。希望它可以帮到你。
func updateSaveButtonState() {
let text = titleTextField.text ?? ""
saveButton.isEnabled = !text.isEmpty
}
@IBAction func textEditingChanged(_ sender: UITextField) {
updateSaveButtonState()
}
@IBAction func returnPressed(_ sender: UITextField) {
titleTextField.resignFirstResponder()
}
答案 2 :(得分:0)
尝试使用以下代码:swift 4.0
func validateOnlyLetters(text: String) -> Bool {
let characterSet = CharacterSet.decimalDigits
return (text.rangeOfCharacter(from: characterSet) == nil)
}
答案 3 :(得分:-1)
默认情况下,textField.text属性是一个字符串。 如果您不希望用户输入任何数字,您可以在保存到userdefaults之前参考此post来输入输入。
Swift的另一篇文章 - How can I check if a string contains letters in Swift?
let letters = NSCharacterSet.letterCharacterSet()
let phrase = "Test case"
let range = phrase.rangeOfCharacterFromSet(letters)
// range will be nil if no letters is found
if let test = range {
println("letters found")
}
else {
println("letters not found")
}