2008-11-29 3 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

Это тоже было мое подозрение ... Я подумал, что сначала попробую спросить, прежде чем регистрировать ошибку в Apple. – shek 2008-12-01 22:54:09

Смежные вопросы