objective-cxcodeuitextviewnscharacterset

Allow only alpha numeric characters in UITextView


Is there anyway i can allow user to enter only alpha numeric characters in a text view and no other character.

EDIT:

Tried,

if ([_txtView.text rangeOfCharacterFromSet:alphaSet].location != NSNotFound)
    {
        UIAlertView* alert = [[UIAlertView alloc] initWithTitle:@"Hello" message:@"Only alpha numeric characters are allowed" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
        [alert show];
        return;

    }

but this only works for some of the times

Thanks!!


Solution

  • You can achieve that using [[[NSCharacterSet alphanumericCharacterSet] invertedSet]. This method will return a character set containing only characters that don’t exist in the receiver.

    NSCharacterSet *charactersToBlock = [[NSCharacterSet alphanumericCharacterSet] invertedSet];
    

    //Conform UITextField delegate and implement this method.

     - (BOOL)textField:(UITextField *)field shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)characters
     {
        return ([characters rangeOfCharacterFromSet:charactersToBlock].location == NSNotFound);
     }