0

我有一个 UITextField 委托方法的工作实现(如下)。我的界面中弹出了一个 UIAlertView,它使用 UIAlertViewStyleLoginAndPassWordInput 进行样式设置,第二个文本字段的安全文本输入属性设置为 NO(实际上给了我一个带有两个文本字段的 UIAlertView)。UIKeyboardTypeDecimalPad 成为每个文本字段的第一响应者。

我想调整这些文本字段以使用下面发布的委托方法,将这些文本字段中的所有输入格式化为货币。我知道我可以手动调用委托方法并将文本字段作为第一个参数传递,但我不确定作为 Range 和 Replacement String 参数传递什么。

这是 UITextField 委托方法:

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
    NSString *text = [textField.text stringByReplacingCharactersInRange:range withString:string];
    text = [text stringByReplacingOccurrencesOfString:@"." withString:@""];
    text = [text stringByReplacingOccurrencesOfString:@"$" withString:@""];
    text = [text stringByReplacingOccurrencesOfString:@"\"" withString:@""];
    double number = [text intValue] * 0.01;
    textField.text = [NSString stringWithFormat:@"%@%.2lf", @"$",number];
    return NO;
}

谢谢

最好的...SL

4

0 回答 0