【发布时间】:2014-04-04 12:49:33
【问题描述】:
我试图在UITextField 上应用验证,它不应该接受任何东西,而不是十进制数。
我使用了UITextField的delegate方法:
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
NSDecimalNumber *number2 = [NSDecimalNumber decimalNumberWithString:string];
if (!string || [string length] < 1 || [string isEqualToString:@""] )
{
return YES;
}
if (!number2 || [number2 isEqualToNumber:[NSDecimalNumber notANumber]])
{
return NO;
}
return YES;
}
它工作完美,但有两个问题。
1.当我输入值“E”或“e”时,它会接受它。
2.一旦它接受字母'E'或'e',它接受所有其他英文字母。
【问题讨论】:
-
你不能把 UITextField 键盘做成 PhonePad 吗?
-
string是替换文本(记录它),因此您的代码在逻辑上不正确,因为它没有像允许编辑后那样验证文本... -
@user2071152 该应用程序是用于 ipad,我无法使用 Phonepad。
标签: ios objective-c ipad uitextfield