【发布时间】:2018-09-18 21:43:54
【问题描述】:
我一直在尝试为以值 0.00% 开头的文本字段实现百分比掩码。如果用户点击“1”,它将变为 0.01%。如果他们然后点击 0,则变为 0.10%,依此类推。
我已经通过货币实现了这一点。而且我已经非常接近使用百分比,但没有设法准确地创建我所追求的。
因此,字段最初设置为 0.00%。我想显示百分比符号,我希望最大数字为 100.00%,我希望最大小数位数为 2,并且希望在用户键入时更新该字段,我想他们能够按退格键删除最后输入的数字。哦,当它达到最大值 100.00 时,按下另一个数字不会重置该值,或者做任何棘手的事情。
这是我尝试过的代码。我也尝试了很多变体:
func textFieldDidChanged(textField: UITextField) {
numberFormatter.numberStyle = .PercentStyle
numberFormatter.maximumFractionDigits = 2
numberFormatter.minimumFractionDigits = 2
numberFormatter.maximum = 100
let text = textField.text!.stringByReplacingOccurrencesOfString(numberFormatter.percentSymbol, withString: "").stringByReplacingOccurrencesOfString(numberFormatter.groupingSeparator, withString: "").stringByReplacingOccurrencesOfString(numberFormatter.decimalSeparator, withString: "")
textField.text = numberFormatter.stringFromNumber((text as NSString).doubleValue / 100.0)
}
我已经查看了所有内容,但在这方面花费的时间太长了。请帮忙。
【问题讨论】:
-
您是否尝试过使用任何掩码库,例如AKMaskField?
-
我遇到过它,但没有完全看透它。感谢您的建议。我再看看。
-
好的,我已经尝试过 AKMaskField,但它并没有真正达到我想要的效果。例如,我希望能够输入 3.4% 或 12.25%。但是使用 AKMaskField 我将不得不使用 03.40%