UITextField将不间断空格转换为空格?

时间:2008-11-29 06:55:57

标签: iphone cocoa-touch

似乎UITextFields将所有non-breaking spaces(nbsp,U + 00A0)转换为spaces(U + 0020)。这会导致编辑区域设置特定数字时出现问题。例如,在法国/法国语言环境中,非中断空格将1和%分开以形成“1%”。但是,由于UITextField将分隔符转换为空格,因此可识别语言环境的NSNumberFormatter无法解析语言环境字符串并将其转换为数字。

以下代码段说明了此问题。

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的属性/行为,我想知道。

1 个答案:

答案 0 :(得分:1)

我很确定此功能不存在。如何打开iPhone的错误报告?