我想禁用"。在检测到用户已经以一个小数点输入到文本字段的一个小数点后,键在数字板上。
因此,启用键,直到在文本场中检测到一个小数为止。
这样做的最好方法是什么?
编辑:我已经实现了以下方法:
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
if([string isEqualToString:@"."]) {
decimalCount++;
}
if(decimalCount > 1) {
[string stringByReplacingOccurrencesOfString:@"." withString:@""];
}
return YES;
}
但是,它没有替换"。使用"十进制计数大于1时。我缺少什么,以便用户仍然可以输入新数字,但不能输入小数点?
您无法禁用密钥。实施shouldtextField:shouldChangeCharactersInRange:replacementString:
委托方法来执行您需要的任何过滤。
无论如何都需要完成此操作,因为用户可以使用外部键盘或尝试将文本粘贴到文本字段中。
对不起,如果我之前的答案误导了您。逻辑是不正确的。这似乎现在对我有用。
-(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;
}
希望它有帮助。