2017-10-20 7 views
-4

J'utilise Xcode 8 et Swift 3. Je crée une application pour iOS. Comment les lettres minuscules entrées seront-elles automatiquement converties en majuscules dans le champ de texte et vice-versa?Entrée des lettres minuscules en majuscules et vice-versa dans le champ de texte

+0

double possible de [Taper toujours (force) minuscule ou majuscule - rapide ios] (https://stackoverflow.com/questions/31989028/typing-always-force-lowercase-or-uppercase-ios-swift) –

Répondre

0

La première réponse est OK mais avec quelques modifications. Testé sur des lettres avec des signes diacritiques. Testé avec copier et coller des méthodes de texte.

Voici ce que dit

class ViewController: UIViewController { 

doit être comme ça.

class ViewController: UIViewController, UITextFieldDelegate { 

Ceci ne concerne que un champ de texte. Pour forcer l'entrée en majuscules, même lorsque la touche Maj est verrouillée ou pressée vers le bas ...

@IBOutlet weak var textField: UITextField! 

func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool { 
    if string.lowercased() == string { 
     textField.text = (textField.text! as NSString).replacingCharacters(in: range, with: string.uppercased()) 
    } else { 
     textField.text = (textField.text! as NSString).replacingCharacters(in: range, with: string.uppercased()) 
    } 

    return false 
} 

Ne pas oublier d'insérer l'intérieur suivant « override func viewDidLoad() ».

textField.delegate = self 

Cela s'applique à un champ de texte. Pour forcer l'entrée en minuscules, même lorsque la touche Maj est verrouillée ou pressée vers le bas ...

@IBOutlet weak var textField: UITextField! 

func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool { 
    if string.lowercased() == string { 
     textField.text = (textField.text! as NSString).replacingCharacters(in: range, with: string.lowercased()) 
    } else { 
     textField.text = (textField.text! as NSString).replacingCharacters(in: range, with: string.lowercased()) 
    } 

    return false 
} 

Ne pas oublier d'insérer l'intérieur suivant « override func viewDidLoad() ».

textField.delegate = self 

Voici deux champs de texte. En supposant qu'un champ de texte est toujours en majuscules et l'autre est toujours en minuscules. N'oubliez pas d'insérer à l'intérieur "override func viewDidLoad()".

textFieldAlwaysUppercase.delegate = self 
    textFieldAlwaysLowercase.delegate = self