2011-11-10 14 views
0

下面的代碼我用於textfieldShouldDidEndEditing格式化字符串,NSNumberFormatter - 十進制形式值發生變化時,我們再次前往該文本字段,有或無編輯

NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];     
[formatter setNumberStyle:NSNumberFormatterDecimalStyle]; 
long long num =  [textField.text longLongValue]; 
NSString *formattedOutput = [formatter stringFromNumber:[NSNumber numberWithLongLong:num]]; 
textField.text = formattedOutput; 
[formatter release]; 

我有一個問題,在上面代碼是第一次正常工作,但是當我們回到文本字段並從中出來時,值就會改變。

例如,我的第一次輸入的數值123456789123456789 和得到這個輸出123,456,789,123,456,789 ,現在當我們從文本字段有或無編輯重新進入和退出,我得到的價值爲123

在此先感謝 巴斯卡爾

回答

3

當然,因爲畢竟在UITextField第一次調用存儲123,456,789,123,456,789,不123456789123456789

當你調用第二次num中的該方法將被存儲爲123

試試這個:

更換

long long num = [textField.text longLongValue]; 

long long num = [[formatter numberFromString:textField.text] longLongValue]; 
+0

非常感謝,我還有一個問題,它的接受,因爲長長的價值高達只有18個數字,我的要求是無限字符被格式化,在此先感謝 – Bhaskar

+0

@Bhaskar我會問你的第二個問題(最多18位數)作爲一個單獨的問題,因爲它沒有關係。 –

相關問題