格式化可访问性标签的价格

时间:2016-07-27 19:35:40

标签: ios objective-c uiaccessibility

我使用NSNumberFormatter格式化语音价格。我发现当没有使用千位分隔符和某些货币列表(例如US $,€,£)时,它可以正常工作,但它似乎不适用于任何其他货币,例如CA $发音为C-A-Dollar ...配置NSNumberFormatter以获得适合语音输出的合适输出的正确方法是什么?

NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
formatter.numberStyle = NSNumberFormatterCurrencyStyle;
formatter.usesGroupingSeparator = NO;
formatter.currencyCode = @"NOK";

view.accessibilityLabel = [formatter stringFromNumber:@100];

正如卡尔在下面提到的,可以使用.CurrencyPluralStyle。它根据区域设置格式化货币,并忽略所有其他设置,甚至usesGroupingSeparator。通过一些手工操作,它可以是一个合适的替代方案!

以下示例:

let formatter = NumberFormatter()
formatter.numberStyle = .currencyPlural
formatter.usesGroupingSeparator = false // being entirely ignored :/
formatter.locale = Locale(identifier: "en_CA")

let str = formatter.string(from: 1000.50)!

print("\(str)")

产地:

  

1,000.50加元

1 个答案:

答案 0 :(得分:2)

NSNumberFormatterCurrencyPluralStyle满足您的需求吗?不过,这只是iOS9及更高版本。