大佬教程收集整理的这篇文章主要介绍了ios – 在Swift的输入文本框中格式化货币,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
到目前为止,我只能在用户完成输入时成功格式化:
@IBACtion func ediTingended(sender: AnyObject) { let formatter = NSnumberFormatter() formatter.numberStyle = NSnumberFormatterStyle.CurrencyStyle formatter.locale = NSLocale(localEIDentifier: "en_US") var numberFromField = NSString(String: textField.text).doubleValue textField.text = formatter.StringFromnumber(numberFromField) }
但是,我希望货币在用户输入时被格式化.当我尝试在TextField操作“编辑更改”或“更改值”时,只能输入1个数字(如果输入8,则变为$8.00),但是一旦输入第二个数字,所有内容都将转到$0.00,而I不能进一步超越这一点.
有什么建议么?我觉得这应该是一个简单的修复,但我不能完全了解它.
import UIKit class ViewController: UIViewController,UITextFieldDelegate { @IBOutlet weak var textField: UITextField! var currentString = "" override func viewDidLoad() { super.viewDidLoad() self.textField.delegate = self } //Textfield delegates func textField(textField: UITextField,shouldChangeCharactersInRange range: NSRange,replacementString String: String) -> Bool { // return NO to not change text switch String { case "0","1","2","3","4","5","6","7","8","9": currentString += String println(currentString) formatCurrency(String: currentString) default: var array = Array(String) var currentStringArray = Array(currentString) if array.count == 0 && currentStringArray.count != 0 { currentStringArray.removeLast() currentString = "" for character in currentStringArray { currentString += String(character) } formatCurrency(String: currentString) } } return false } func formatCurrency(#String: String) { println("format \(String)") let formatter = NSnumberFormatter() formatter.numberStyle = NSnumberFormatterStyle.CurrencyStyle formatter.locale = NSLocale(localEIDentifier: "en_US") var numberFromField = (NSString(String: currentString).doublevalue)/100 textField.text = formatter.StringFromnumber(numberFromField) println(textField.text ) } }
以上是大佬教程为你收集整理的ios – 在Swift的输入文本框中格式化货币全部内容,希望文章能够帮你解决ios – 在Swift的输入文本框中格式化货币所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。