我是iphone新手,我有一个文本字段,当我点击自定义数字按钮时,该值将在文本字段中打印,我想在textField中输入值,如果我输入一个值,该值应该到达左侧小数点,怎么样?
示例:12345
我想要这个 123.45
答案 0 :(得分:1)
您的问题有点不清楚 - 您是否尝试在UITextField
中设置文字?你试过了吗?
[myTextField setText:[NSString stringWithFormat:@"%.2f", myFloat]];
其中myFloat
是您的浮点变量。字符串中的%.2f
语句将myFloat
打印到2位小数。
希望这就是你所追求的目标。
答案 1 :(得分:1)
如果您允许用户在文本字段中输入文本并且您想要插入小数点,那么您应该捕获文本字段上的UIControlEventEditingChanged
事件并使用它来重新处理文本。 e.g。
[textField addTarget:self action:@selector(reprocessTextFieldText:) forControlEvents:UIControlEventEditingChanged];
...
-(void)reprocessTextFieldText:(UITextField *)sender
{
// enforce rules on sender.text here.
}
如果您明确想要取消用户输入除数字以外的任何内容的功能,那么您可能还需要向UITextField
添加委托并正确实施textField:shouldChangeCharactersInRange:replacementString:
。
答案 2 :(得分:0)
试试这个
- (void)viewDidLoad
{
[super viewDidLoad];
enteredtext = @"0";
// Do any additional setup after loading the view from its nib.
}
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
if([string isEqualToString:@"0.00"])
enteredtext = @"0";
if(range.length==1)
{
if(enteredtext.length>1)
enteredtext = [[enteredtext substringWithRange:NSMakeRange(0,enteredtext.length-1)]retain];
}
else
{
if(enteredtext.length<9)
enteredtext = [[NSString stringWithFormat:@"%@%@",enteredtext,string]retain];;
}
double amountindecimal = [enteredtext floatValue];
double res=amountindecimal * pow(10, -2);
NSString * neededstring = [NSString stringWithFormat:@"%.2f",res];
if([neededstring isEqualToString:@"0.00"])
enteredtext = @"0";;
textField.text = neededstring;
return NO;
}