我有一个UITextField
,用户应键入一个浮点数。我想检查这个号码是否有我收到的某种格式,例如“dddd.dd”,其中“d”是一个数字。格式可能随时改变,因为我也将其作为输入接收,因此例如我可能想在另一时刻检查“,”字符用于小数,再说一个例子。
考虑到您从text
读取的UITextField
属于String
类型(可选),应该采用哪种方法来实现此目标?
NumberFormatter
检查格式?答案 0 :(得分:1)
试试这个
在viewDidLoad
中或将代理人分配给自己的文本域
-(void)viewDidLoad{
self.txtFieldName.delegate = self;
}
现在实现此委托方法 -
-(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
if(textField == self.txtFieldName)
{
NSCharacterSet *invalidCharSet = [[NSCharacterSet characterSetWithCharactersInString:@"01234567989."] invertedSet];
NSString *filtered = [[string componentsSeparatedByCharactersInSet:invalidCharSet] componentsJoinedByString:@""];
return [string isEqualToString:filtered];
}
else
return YES;
}
这将使你的textfield只能从0-9和。(十进制)中取数字。