当前位置: 首页 > 面试题库 >

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

屠振濂
2023-03-14
问题内容

我有一个数字可以说0.00

  • 当用户点击1.时,我们应该 0.01
  • 当用户点击2时,我们应该显示 0.12
  • 当用户点击3时,我们应该显示 1.23
  • 当用户点击4时,我们应该显示 12.34

我该如何用Swift做到这一点?


问题答案:

对于 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)!
    }
}


 类似资料:
  • 问题内容: 我正在尝试在用户输入时在Swift的文本字段中格式化货币输入。 到目前为止,我只能在用户完成输入后才能成功格式化它: 但是,我希望在用户输入货币后立即对其进行格式化。当我尝试在TextField操作“ Edited Changed”或“ Value Changed”上执行此操作时,我只能输入1个数字(如果输入8,则变为$ 8.00),但是一旦输入第二个数字,所有内容将变为$ 0.00,

  • 问题内容: 对于我的网站,我需要提供阿拉伯语支持。它的一部分是提供输入文本框,在其中输入用户时,必须在左侧添加新字符,并且必须将文本右对齐。 将css属性设置为 没有用,因为我无法将光标移到左侧并在其中添加字母。所以我删除了该属性并添加了 在这里,光标移到左侧,文本右对齐。但是新添加的字符未添加到左侧。相反,它们仅被附加到右端。 我该如何解决?请帮忙.. 例如,请参阅Google阿拉伯语页面搜索框

  • 问题内容: 我想在开始时有一个文本输入字段,其中包含“ $”符号,无论对该字段进行什么编辑,以使该符号保持不变。 如果只接受数字作为输入,我会很好,但这只是一个幻想。 问题答案: 考虑使用无边界输入字段周围带有边框的跨度来模拟具有固定前缀或后缀的输入字段。这是一个基本的启动示例:

  • 我试过... 但那就不允许便士条目了。 我想要增量按钮控制在英镑上升,但仍然想要输入便士的能力。 谢谢,1DMF

  • 问题内容: 是否有更改此文本的CSS代码 到这个 问题答案: 尝试这个 编辑:将此类应用于段落标记,您应该得到想要的结果。

  • 问题内容: 我正在尝试使用http://jquerypriceformat.com/为欧盟货币字段创建输入掩码 到目前为止,在我的指令中,输入已正确应用掩码并正确显示给用户,但是我相信这是有问题的,因为POST值是以奇怪的格式发送的,这与我们在输入字段中看到的完全不同。 我包括priceformat.js 在角度上: 我的输入正确显示了带有掩码的值,但是在POST数据(用角度表示)上,它是一个不同