如何使用Swift在文本字段(从右到左)输入货币格式? [英] How to input currency format on a text field (from right to left) using Swift?
本文介绍了如何使用Swift在文本字段(从右到左)输入货币格式?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个数字,假设 0.00
。
I have a number let’s say 0.00
.
- 当用户点击1.我们应该
0.01
- 当用户点击2.我们应该显示
0.12
- 当用户点击3.我们应该显示
1.23
- 当用户点击4.我们应该显示
12.34
- When the user taps 1. We should have
0.01
- When the user taps 2. We should display
0.12
- When the user taps 3. We should display
1.23
- When the user taps 4. We should display
12.34
我如何使用Swift做到这一点?
How can I do that with Swift?
推荐答案
Swift 3 。在文本字段上输入货币格式(从右到左)
For Swift 3. Input currency format on a text field (from right to left)
override func viewDidLoad() {
super.viewDidLoad()
textField.addTarget(self, action: #selector(myTextFieldDidChange), for: .editingChanged)
}
func myTextFieldDidChange(_ textField: UITextField) {
if let amountString = textField.text?.currencyInputFormatting() {
textField.text = amountString
}
}
extension String {
// formatting text for currency textField
func currencyInputFormatting() -> String {
var number: NSNumber!
let formatter = NumberFormatter()
formatter.numberStyle = .currencyAccounting
formatter.currencySymbol = "$"
formatter.maximumFractionDigits = 2
formatter.minimumFractionDigits = 2
var amountWithPrefix = self
// remove from String: "$", ".", ","
let regex = try! NSRegularExpression(pattern: "[^0-9]", options: .caseInsensitive)
amountWithPrefix = regex.stringByReplacingMatches(in: amountWithPrefix, options: NSRegularExpression.MatchingOptions(rawValue: 0), range: NSMakeRange(0, self.characters.count), withTemplate: "")
let double = (amountWithPrefix as NSString).doubleValue
number = NSNumber(value: (double / 100))
// if first number is 0 or all numbers were deleted
guard number != 0 as NSNumber else {
return ""
}
return formatter.string(from: number)!
}
}
这篇关于如何使用Swift在文本字段(从右到左)输入货币格式?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文