2008-11-29 30 views
4

看來UITextFields將所有的non-breaking spaces(nbsp,U + 00A0)轉換爲spaces(U + 0020)。這會導致編輯區域特定數字的問題。例如,在法國/法國區域設置中,非分隔空格將1和%分隔爲「1%」。但是,由於UITextField將分隔符轉換爲空格,因此感知區域設置的NSNumberFormatter無法解析區域設置字符串並將其轉換爲數字。UITextField將不間斷空格轉換爲空格嗎?

以下代碼片段說明了此問題。

NSLocale *fr_FR = [[[NSLocale alloc] initWithLocaleIdentifier:@"fr_FR"] autorelease]; 

NSNumberFormatter *percentageFormatter = [[NSNumberFormatter alloc] init]; 
[percentageFormatter setFormatterBehavior:NSNumberFormatterBehavior10_4]; 
[percentageFormatter setGeneratesDecimalNumbers:TRUE]; 
[percentageFormatter setNumberStyle:NSNumberFormatterPercentStyle]; 
[percentageFormatter setLocale:fr_FR]; 

NSDecimalNumber *one = [NSDecimalNumber decimalNumberWithString:@"0.01"]; 

// will be "1 %" where the separator character is a nbsp (this is correct) 
NSString *percentage = [percentageFormatter stringFromNumber:one]; 

UITextField *textField = [[UITextField alloc] init]; 
textField.text = percentage; 

// will be "1 %" where the separator character is a space (this is wrong) 
NSString *textFieldValue = textField2.text; 

// returns an indeterminate value: may throw an exception, may return nil, etc 
// this should return the number 0.01 
NSNumber *percentageNumber = [percentageFormatter numberFromString:textFieldValue]; 

我的問題:如何防止的UITextField非中斷空格轉換爲空格?

我明白我可以用來破解這個工作,這樣它就可以工作,如果我在使用不間斷空格的語言環境中。但是,如果存在UITextField的屬性/行爲,我不知道要保留nbsp,我想知道。

回答

1

我很確定這個功能不存在。如何打開iPhone的錯誤報告?

+0

這也是我的懷疑......我想我會在向蘋果公司記錄錯誤之前先在這裏問一下。 – shek 2008-12-01 22:54:09

相關問題