2014-02-10 3 views
-1

Я создал UITextField, и я хочу дать подтверждение для текстового поля (имя_пользователя), чтобы допускались только символы. Если пользователь вводит что-либо другое, кроме алфавита, например числа или специальные символы, он не должен появляться, а также должно быть уведомление, чтобы показать то же самое.Проверка на UITextField в iOS

ответ

0

Вы можете попробовать это:

-(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string 
    { 
     if(textField==YOUR_TEXTFIELD_NAME) 
     { 
      NSCharacterSet *myCharSet = [NSCharacterSet characterSetWithCharactersInString:@"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"]; 
      for (int i = 0; i < [string length]; i++) { 
       unichar c = [string characterAtIndex:i]; 
       if (![myCharSet characterIsMember:c]) { 
        UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Error" message:@"Numbers not allowed" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil, nil]; 
        [alert show]; 
        return NO; 
       } 

      } 

    } 
return YES; 
} 

Убедитесь, что вы установить делегат для вашего текстового поля.

+0

благодарит за Replay, но этот код также разрешен – user3291536

+0

1. Вы подключили свой UITextField с помощью IBOutlet? 2. Вы установили UITextFieldDelegate в текстовое поле? – GenieWanted

+0

спасибо, я получил ответ – user3291536

-1
try this 

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

- (BOOL)textField:(UITextField *)field shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)characters 
{ 
    return ([characters rangeOfCharacterFromSet:blockedCharacters].location == NSNotFound); 
} 
-1
#define ACCEPTABLE_NUMBER @"1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz" 

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string 
{ 

     NSCharacterSet *acceptedInput = [[NSCharacterSet characterSetWithCharactersInString:ACCEPTABLE_NUMBER]invertedSet]; 
     NSString *filtered = [[string componentsSeparatedByCharactersInSet:acceptedInput] componentsJoinedByString:@""]; 
     if ((![filtered isEqualToString:string])) 
      return NO; 
    } 

} 
3

определяют ALPHA @ "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"

- (BOOL) TextField: (UITextField *) TextField shouldChangeCharactersInRange: (NSRange) Диапазон replacementString: (NSString *) строка {

NSCharacterSet *blockedCharacters = [[NSCharacterSet characterSetWithCharactersInString:ALPHA] invertedSet]; 

if (!([string rangeOfCharacterFromSet:blockedCharacters].location == NSNotFound)) { 
    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Message" message:@"Only Alphabet allow." delegate:self cancelButtonTitle:@"Okay" otherButtonTitles:nil, nil]; 
    [alert show]; 
} 

return ([string rangeOfCharacterFromSet:blockedCharacters].location == NSNotFound); 

}

Смежные вопросы