Search code examples
iosiphoneuitextfielduistoryboard

Uppercase characters in UItextfield


I have a question about iOS UIKeyboard.

I have a UITextField and I would to have the keyboard with only uppercase characters.

I use a storyboard and I tried to set the Cpitalization as "All characters" to UITextField properties.

But this not solve my problem...any suggestion?


Solution

  • Set your textfield type autocapitalizationType to UITextAutocapitalizationTypeAllCharacters on the UITextField

    self.yourTexField.autocapitalizationType = UITextAutocapitalizationTypeAllCharacters;
    

    After call delegate

    // delegate method

    - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
    {
        NSRange lowercaseCharRange = [string rangeOfCharacterFromSet:[NSCharacterSet lowercaseLetterCharacterSet]];
    
        if (lowercaseCharRange.location != NSNotFound) {
            textField.text = [textField.text stringByReplacingCharactersInRange:range
                                                                     withString:[string uppercaseString]];
            return NO;
        }
    
        return YES;
    }
    

    Swift 5.4.2

           self.yourTextField.autocapitalizationType = .allCharacters