iOS_Pass : 限制UITextField中输入内容,如只限制输入数字,字母或者某几个键盘元素。

时间:2022-08-24 13:50:50

限制UITextField中输入内容,如只限制输入数字,字母或者某几个键盘元素。

现在我们限制只能输入0-9的数字。

#pragma mark - UITextFieldDelegate
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{

    if (textField == self.windowNumField && range.location > 4) {
        return NO;
    }
    NSCharacterSet *cs;
    if(textField == self.windowNumField) {
        cs = [[NSCharacterSet characterSetWithCharactersInString:@"1234567890"] invertedSet];
        NSString *filtered = [[string componentsSeparatedByCharactersInSet:cs] componentsJoinedByString:@""];
        BOOL basicTest = [string isEqualToString:filtered];
        if(!basicTest)  {
            return NO;
        }
    }
    return YES;
}

同理,如果我们限制只能输入26个英文字母,把代码中的0-9数字字符串替换成a-z即可。