Локализация UIKeyboardTypeDecimalPad

Я заметил, что UIKeyboardTypeDecimalPad был добавлен в iOS 4.1, и начал его использовать. В ходе тестирования я переключил язык и регион на французский в разделе «Международные настройки» в настройках. Я ожидал, что десятичная клавиша на клавиатуре в моем приложении изменится с "." на "," но это не так.

Все, что я делаю, это:

_textFieldUnitCost.keyboardType = UIKeyboardTypeDecimalPad;

Есть идеи?


person Kris Bixler    schedule 03.10.2010    source источник
comment
Та же проблема для меня на немецком языке. Я надеялся заменить UIKeyboardTypeNumbersAndPunctuation новым DecimalPad, но без учета формата региона это невозможно.   -  person Gerd    schedule 11.10.2010


Ответы (2)


Начиная с версии 4.2.1 десятичная клавиша на клавиатуре теперь меняется с "." на "," при переключении на язык/регион, который использует ","

person Kris Bixler    schedule 18.02.2011

Один из способов обойти это - просто принять знак препинания, потому что это десятичный знак, а затем изменить его, когда вы передаете его в виде строки для отображения.

NSString *firstString = @"102.08", *finalString;

finalString = [[firstString stringByReplacingOccurancesOfString:@"." withString:@","];
//string value returns 102,08

Это будет работать, если вам просто нужно отобразить. Это не сработает, если вы будете заниматься математикой с этой строкой. Вы на самом деле не можете. Теперь вы можете сохранить его как число с плавающей запятой, а затем, когда вы конвертируете в строку, вы выполняете эти две строки кода.

person Farini    schedule 13.11.2011