2012-01-05 149 views
2

我想檢查一個UITextfield,以確保它不包含第二個小數。如何檢查NSString的第二個小數?檢查NSString相同的字符兩次

真的,我想要做的是提供一個uitextfield,只有數字鍵盤,並使其如果用戶按下1 2 3 4 5 6 7 8 9它顯示爲「$ 1,234,567.89」,但我遇到將字符串轉換爲浮點值並將結果四捨五入......但如果我可以確保用戶不輸入2小數點,我也會很好。

+0

請檢查此問題,http://stackoverflow.com/questions/276382/what-is-the-best-way-to-enter-numeric-values-with-decimal-points – AAV 2012-01-05 19:13:32

回答

3

這樣做的最好方法是防止用戶輸入第二個小數點。如下

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string 
{ 
    NSCharacterSet *set = [NSCharacterSet characterSetWithCharactersInString:@"."]; 

    if ([string rangeOfCharacterFromSet:set].location != NSNotFound && [textField.text rangeOfCharacterFromSet:set].location != NSNotFound) { 
     return NO; 
    } 

    return YES; 
} 

現在,如果用戶再次按下小數點,它不會被添加到現有的UITextField:shouldChangeCharactersInRange:replacementString文本字段 - 使用UITextFieldDelegate方法。

相關問題