如何使用SWIFT在文本字段(从右到左)输入货币格式?

如何使用SWIFT在文本字段(从右到左)输入货币格式?

我有个号码,比方说0.00.

  • 当用户点击1.我们应该有

    0.01

  • 当用户点击2。我们应该显示

    0.12

  • 当用户点击3。我们应该显示

    1.23

  • 当用户点击4。我们应该显示

    12.34

我怎么才能用斯威夫特做这件事?


精慕HU
浏览 694回答 3
3回答

一只斗牛犬

为SWIFT 3..在文本字段上输入货币格式(从右到左)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)!     }}

桃花长相依

试试这段代码:struct&nbsp;DotNum&nbsp;{ &nbsp;&nbsp;private&nbsp;var&nbsp;fraction:String&nbsp;=&nbsp;"" &nbsp;&nbsp;private&nbsp;var&nbsp;intval:String&nbsp;=&nbsp;"" &nbsp;&nbsp;init()&nbsp;{} &nbsp;&nbsp;mutating&nbsp;func&nbsp;enter(s:String)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;count(fraction)&nbsp;<&nbsp;2&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fraction&nbsp;=&nbsp;s&nbsp;+&nbsp;fraction&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;else&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;intval&nbsp;=&nbsp;s&nbsp;+&nbsp;intval&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;} &nbsp;&nbsp;private&nbsp;var&nbsp;sFract:String&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;count(fraction)&nbsp;==&nbsp;0&nbsp;{&nbsp;return&nbsp;"00"&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;count(fraction)&nbsp;==&nbsp;1&nbsp;{&nbsp;return&nbsp;"0\(fraction)"&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;fraction&nbsp;&nbsp;} &nbsp;&nbsp;var&nbsp;stringVal:String&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;intval&nbsp;==&nbsp;""&nbsp;&nbsp;{&nbsp;return&nbsp;"0.\(sFract)"&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;"\(intval).\(sFract)" &nbsp;&nbsp;}}var&nbsp;val&nbsp;=&nbsp;DotNum()val.enter("1")val.stringVal val.enter("2")val.stringVal val.enter("3")val.stringVal val.enter("4")val.stringVal
打开App,查看更多内容
随时随地看视频慕课网APP