Objective c 如何阻止用户在特定范围内的文本字段中输入文本。?

Objective c 如何阻止用户在特定范围内的文本字段中输入文本。?,objective-c,ios,Objective C,Ios,我有一个疑问,在用户输入8位数字后,如何阻止他在文本字段中输入任何内容?这意味着在文本字段长度达到8位后,键盘将被禁用,但如果用户删除任何数字,键盘将再次启用 这是代码。请帮帮我,先谢谢你。目前,它只停止到8位数字,但它不允许我删除了 - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {

我有一个疑问,在用户输入8位数字后,如何阻止他在文本字段中输入任何内容?这意味着在文本字段长度达到8位后,键盘将被禁用,但如果用户删除任何数字,键盘将再次启用

这是代码。请帮帮我,先谢谢你。目前,它只停止到8位数字,但它不允许我删除了

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

    NSCharacterSet *charSet = [NSCharacterSet characterSetWithCharactersInString:DIGIT_CHARSET];
    NSString *text = [string stringByTrimmingCharactersInSet:[charSet invertedSet]];

    if ([textField.text length] == 8) {
        return NO;
    }else 
    {
        return [text isEqualToString:string];
    }
}

您需要在textField中检查更改文本的长度

NSString* changedText = [textField.text stringByReplacingCharactersInRange: range withString: string];
if ([changedText length] >= 8)
    return NO;

在你的代码中试试这个。它将不允许在8之后写入任何数字,但如果您删除,则它将允许您写入数字,直到8为止

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
    if (range.location > 7)
        return NO;
    else
        return YES; 
}