我的应用中有一些代码可以格式化用户在输入时输入的值。文本字段使用用户的本地货币符号和小数点类型格式化输入。
问题在于虽然这在iOS 8中可以很好地用于许多货币,例如欧元,美元,英镑等......但是它在iOS 7中的某些货币格式不正确。我刚刚更改了我的从iOS 8到iOS 7的部署目标,并注意到这是一个问题。
这是我的代码:
func textFieldDidChangeValue(textField: UITextField) {
//Automatic formatting for transaction value text field. Target is added above.
var text = textField.text.stringByReplacingOccurrencesOfString(currencyFormatter.currencySymbol, withString: "").stringByReplacingOccurrencesOfString(currencyFormatter.groupingSeparator, withString: "").stringByReplacingOccurrencesOfString(currencyFormatter.decimalSeparator, withString: "")
textField.text = currencyFormatter.stringFromNumber((text as NSString).doubleValue / 100.0)
currencyDouble = (text as NSString).doubleValue / 100.0
println(currencyDouble)
valueEnter.alpha = 100
}
当我将设备的位置更改为欧洲国家(欧元)并尝试输入值时,第一个数字输入正确,但之后我无法输入任何其他内容,也不会删除输入的值。
关于此功能有什么不同于iOS 7到8,我该如何解决?
答案 0 :(得分:0)
原来有一个奇怪的字符被添加到格式化的文本中。要解决此问题,您必须在文本字段中打印文本并复制您在最后一个数字和货币符号之间看到的任何字符。
如果您需要更好的解释,请参阅开发人员论坛上的帖子:https://devforums.apple.com/message/1032392#1032392