UITextField конвертирует неразрывные пробелы в пробелы? - PullRequest
4 голосов
/ 29 ноября 2008

Кажется, UITextFields преобразует все неразрывные пробелы (nbsp, U + 00A0) в пробелы (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, о котором я не знаю, чтобы сохранить nbsp, я хотел бы знать.

1 Ответ

1 голос
/ 01 декабря 2008

Я уверен, что эта функция не существует. Как насчет открытия отчета об ошибках для iPhone?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...