iOS UITextField限制輸入數位例子

來源:互聯網
上載者:User

有時候項目中要求文字框中只能輸入數字,如:價格、公裡數、費用等等,一般的文字框不限制輸入的格式,這時候只能強制限制輸入框的輸入格式了,代碼如下:

#import "ViewController.h"
 
@interface ViewController ()<UITextFieldDelegate>{
    UITextField *numTextField;
}
 
@end
 
@implementation ViewController
 
- (void)viewDidLoad {
    [super viewDidLoad];
    
    numTextField = [[UITextField alloc] initWithFrame:CGRectMake(60, 80, 100, 40)];
    numTextField.layer.borderColor = [[UIColor grayColor]CGColor];
    numTextField.layer.borderWidth = 1.0f;
    numTextField.delegate = self;
    numTextField.textAlignment = NSTextAlignmentCenter;
    [self.view addSubview:numTextField];
}
#pragma mark - UITextField限制輸入數字
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
    if(textField == numTextField){
        return [self validateNumber:string];
    }
    return YES;
}
#pragma mark - 驗證是否是純數字
- (BOOL)validateNumber:(NSString*)number {
    BOOL res = YES;
    NSCharacterSet *tmpSet = [NSCharacterSet characterSetWithCharactersInString:@"0123456789"];
    int i = 0;
    while (i < number.length) {
        NSString * string = [number substringWithRange:NSMakeRange(i, 1)];        NSRange range = [string rangeOfCharacterFromSet:tmpSet];        if (range.length == 0) {
            res = NO;
            NSLog(@"請輸入數字");
            break;
        }
        i++;
    }
    return res;
}
- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}
 
@end
註:寫文章的時候,突然想到了可以設定鍵盤樣式為數字形式(UIKeyboardTypeNumberPad),這樣的話應該也是可以限制的,通過模擬器調試,設定鍵盤樣式沒有作用,因為用電腦上的鍵盤可以輸入漢字或字母,不知道真機是否可以,感興趣的可以在真機上測試下。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.