Чтобы в UITextField вводить только цифры и не позволить вводить длинные строки, делаем следующее:
Объявим константы
#define NUMBERS_ONLY @"1234567890"
#define CHARACTER_LIMIT 4
И пишем в делегате UITexField
-(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
NSUInteger newLength = [textField.text length] + [string length] - range.length;
NSCharacterSet *cs = [[NSCharacterSet characterSetWithCharactersInString:NUMBERS_ONLY] invertedSet];
NSString *filtered = [[string componentsSeparatedByCharactersInSet:cs] componentsJoinedByString:@""];
return (([string isEqualToString:filtered])&&(newLength <= CHARACTER_LIMIT));
}