即時通訊新的iPhone,我有一個文本框,當我點擊自定義數字按鈕的值將打印在文本字段中,我想輸入一個文本字段中的值,如果我輸入一個值,值應該來到左側小數點如何?如何在iphone中顯示textfield中的浮點值?
例如:12345
我想這 123.45
即時通訊新的iPhone,我有一個文本框,當我點擊自定義數字按鈕的值將打印在文本字段中,我想輸入一個文本字段中的值,如果我輸入一個值,值應該來到左側小數點如何?如何在iphone中顯示textfield中的浮點值?
例如:12345
我想這 123.45
你的問題有點不清楚 - 你想設置的UITextField
的文本?您是否嘗試過:
[myTextField setText:[NSString stringWithFormat:@"%.2f", myFloat]];
其中myFloat
是您的浮點變量。字符串內的%.2f
語句將打印myFloat
到2個小數位。
希望這是你所追求的。
如果您允許用戶在文本字段中輸入文本並且想要插入小數點,那麼您應該捕獲文本字段上的UIControlEventEditingChanged
事件並使用它來重新處理文本。例如
[textField addTarget:self action:@selector(reprocessTextFieldText:) forControlEvents:UIControlEventEditingChanged];
...
-(void)reprocessTextFieldText:(UITextField *)sender
{
// enforce rules on sender.text here.
}
如果你明確要帶走用戶的鍵入數字比任何其他的能力,那麼你可能還需要一個委託添加到您的UITextField
並妥善執行textField:shouldChangeCharactersInRange:replacementString:
。
試試這個
- (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;
}