gpt4 book ai didi

xcode - 在用户输入时格式化文本字段

转载 作者:搜寻专家 更新时间:2023-11-01 06:24:35 25 4
gpt4 key购买 nike

我目前在我的应用程序中有两个单独的文本字段,我正在尝试将其更改为只有一个。文本字段用于输入货币(一个用于英镑、美元、欧元等,一个用于便士、美分等)并且它们工作正常,但是我需要添加一些功能,除非我使用单个文本域。另外,我认为单个文本字段对用户更友好。

基本上,我希望有一个文本字段,可以在用户输入时以本地化的货币形式实时格式化。例如。

1 格式为 £1.00 或 $1.00 或 1.00€ 等...1000 种格式,如 £1,000.00 或 $1,000.00 或 1 000,00€ 等...

我做了一些研究并找到了一些 Objective-C 示例,但我就是想不出如何在 Swift 中做同样的事情(我从来没有用 Objective-C 编程过)。

非常感谢任何帮助,因为我发现这相当令人沮丧。

最佳答案

您可以使用此代码:

func currencyStringFromNumber(number: Double) -> String {
let formatter = NSNumberFormatter()
formatter.numberStyle = NSNumberFormatterStyle.CurrencyStyle
formatter.currencyCode = NSLocale.currentLocale().displayNameForKey(NSLocaleCurrencySymbol, value: NSLocaleCurrencyCode)
return formatter.stringFromNumber(number)
}

let currencyString = currencyStringFromNumber(21010)
println("Currency String is: \(currencyString)")

// Will print $21,010.00

这是根据您的需要推断工作的此信息的可编译和工作示例。

import UIKit

class CurrencyTextFieldExample: UIViewController {

let currencyFormatter = NSNumberFormatter()

override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.

let textField = UITextField()
textField.addTarget(self, action: "textFieldDidChange:", forControlEvents: UIControlEvents.EditingChanged)
textField.frame = CGRect(x: 0, y: 40, width: 320, height: 40)
textField.keyboardType = UIKeyboardType.NumberPad
textField.backgroundColor = UIColor.lightGrayColor()
self.view.addSubview(textField)

currencyFormatter.numberStyle = NSNumberFormatterStyle.CurrencyStyle
currencyFormatter.currencyCode = NSLocale.currentLocale().displayNameForKey(NSLocaleCurrencySymbol, value: NSLocaleCurrencyCode)


}

override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}

func textFieldDidChange(textField: UITextField) {
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)
}

}

如果您有任何问题,请告诉我。

关于xcode - 在用户输入时格式化文本字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24977109/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com