-->

如何禁用的iOS键盘上的小数点键(How can I disable the decimal key

2019-10-19 12:53发布

我想禁用“” 键上检测到用户已经进入了一个小数点到文本字段之后的数字键盘。

所以直到文本框检测到一个小数的关键启用。

什么是这样做的最佳方式?

编辑:我实现了以下方法:

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

    if([string isEqualToString:@"."]) {
        decimalCount++;
    }

    if(decimalCount > 1) {

        [string stringByReplacingOccurrencesOfString:@"." withString:@""];

    }

    return YES;
}

然而,这不是更换“” 以“”当十进制计数大于1,我缺少的是让用户仍然可以输入新的数字,但不是小数点更大?

Answer 1:

您不能禁用的关键。 实施shouldtextField:shouldChangeCharactersInRange:replacementString:委托方法做任何过滤你的需要。

这需要做无论如何,因为用户可以使用外部键盘或尝试将文本粘贴到文本字段中。



Answer 2:

很抱歉,如果我刚才的答复误导你。 该逻辑是不正确的。 这似乎是现在的工作对我来说。

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

    BOOL result = YES;
    NSString *targetString = @".";

    if([textField.text rangeOfString:targetString].location != NSNotFound) {
        if([string isEqualToString:targetString]) {
            result = NO;
        }
    }

    return result;
}

希望能帮助到你。



文章来源: How can I disable the decimal key on iOS keyboard