天天看点

限制UITextField只接收数字输入

1、定义宏

#define NUMBERS     @"0123456789\n"

2、实现

UITextFieldDelegate的

- (BOOL) textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string;方法。

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

{

    NSCharacterSet* filterCS = [[NSCharacterSet characterSetWithCharactersInString:NUMBERS] invertedSet];

    NSString* filterString = [[string componentsSeparatedByCharactersInSet:filterCS] componentsJoinedByString:@""];

    BOOL flag = [string isEqualToString:filterString];

    if (!flag)

    {

        UIAlertView* alert = [[UIAlertView alloc] initWithTitle:@"提示" message:@"请输入数字" delegate:nil cancelButtonTitle:@"确定" otherButtonTitles: nil];

        [alert show];

        [alert release];

        return NO;

    }

    return YES;

}