Clavier UITextfield avec seulement l'alphabet, pas de numbers, pas de majuscule, pas de barre d'espace?

Je veux que le keyboard pour UITextfield ait seulement az, pas de numbers, pas de caractères spéciaux (! @ $! @ $ @! #), Et pas de majuscule. Fondamentalement, je vais pour un keyboard avec seulement l'alphabet.

J'étais capable de désactiver l'espace déjà. Quelqu'un sait comment désactiver les numbers, les caractères spéciaux et les majuscules? Une solution pour n'importe lequel d'entre eux serait géniale.

Est-ce la meilleure solution pour faire le ci-dessous pour tous les personnages mais je ne veux pas?

func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementSsortingng ssortingng: Ssortingng) -> Bool { if (ssortingng == " ") { return false } if (ssortingng == "1") { return false } return true } 

Un moyen facile serait:

 if let range = ssortingng.rangeOfCharacterFromSet(NSCharacterSet.letterCharacterSet()) return true } else { return false } 

Swift 3 solution

 func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementSsortingng ssortingng: Ssortingng) -> Bool { let characterSet = CharacterSet.letters if ssortingng.rangeOfCharacter(from: characterSet.inverted) != nil { return false } return true } 
 if isValidInput(Input: yourtextfieldOutletName.text!) == false { let alert = UIAlertController(title: "", message;"Name field accepts only alphabatics", preferredStyle: UIAlertControllerStyle.alert) alert.addAction(UIAlertAction(title: "Ok", style: UIAlertActionStyle.default, handler: nil)) self.present(alert, animated: true, completion: nil) } func isValidInput(Input:Ssortingng) -> Bool { let myCharSet=CharacterSet(charactersIn:"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ") let output: Ssortingng = Input.sortingmmingCharacters(in: myCharSet.inverted) let isValid: Bool = (Input == output) print("\(isValid)") return isValid } 
 class ViewController: UIViewController,UITextFieldDelegate { @IBOutlet var phoneTextField:UITextField! override func viewDidLoad() { super.viewDidLoad() self.phoneTextField.delegate = self } func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementSsortingng ssortingng: Ssortingng) -> Bool { let textSsortingng = (textField.text! as NSSsortingng).replacingCharacters(in: range, with: ssortingng) if textField == self.phoneTextField && ssortingng.characters.count > 0 { let LettersOnly = NSCharacterSet.Letters let strValid = LettersOnly.contains(UnicodeScalar.init(ssortingng)!) return strValid && textSsortingng.characters.count <= 10 } return true } } 

Essayez ce code
Dans le code ci-dessus est seulement autoriser 10 caractères dans le champ de text