2011-11-08 3 views

답변

1

귀하의 질문이 좀 불분명합니다 - 당신은 UITextField의 텍스트를 설정하려고? 당신은 시도 :

[myTextField setText:[NSString stringWithFormat:@"%.2f", myFloat]]; 

myFloat이 부동 소수점 변수입니다

. 문자열 내의 %.2f 문은 myFloat을 소수 2 자리까지 인쇄합니다.

희망은 다음에 나오는 내용입니다.

1

사용자가 텍스트 필드에 텍스트를 입력 할 수 있도록하고 소수점을 삽입하려는 경우 텍스트 필드에서 UIControlEventEditingChanged 이벤트를 찾아서 텍스트를 다시 처리해야합니다. 예 :

[textField addTarget:self action:@selector(reprocessTextFieldText:) forControlEvents:UIControlEventEditingChanged]; 

... 


-(void)reprocessTextFieldText:(UITextField *)sender 
{ 
    // enforce rules on sender.text here. 
} 

명시 적으로 숫자 이외의 아무 것도 입력 할 수있는 사용자의 능력을 빼앗아하려면

다음 당신은 또한 당신의 UITextField에 대리인을 추가하고 적절하게 textField:shouldChangeCharactersInRange:replacementString:을 구현 할 수 있습니다.

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; 
} 
시도
관련 문제