0
Ich habe zwei Textfelder in der ViewController. Einer ist "Betrag", einer ist "Zinssatz". Für den "Betrag" habe ich eine Delegat-Funktion verwendet, um zu steuern, wann sie tippen, es wird automatisch Komma und $ hinzufügen. Hier ist der Code:Swift zwei Delegate-Funktion für Textfeld
func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool {
let oldText = textField.text! as NSString
var newText = oldText.stringByReplacingCharactersInRange(range, withString: string) as NSString!
var newTextString = String(newText)
let digits = NSCharacterSet.decimalDigitCharacterSet()
var digitText = ""
for c in newTextString.unicodeScalars {
if digits.longCharacterIsMember(c.value) {
digitText.append(c)
}
}
let formatter = NSNumberFormatter()
// formatter.usesSignificantDigits = false
formatter.numberStyle = NSNumberFormatterStyle.CurrencyStyle
formatter.locale = NSLocale(localeIdentifier: "en_US")
let numberFromField = (NSString(string: digitText).doubleValue)/100
newText = formatter.stringFromNumber(numberFromField)
if newText.isEqualToString("$0.00") {
newText = ""
}
// let attributedString = NSMutableAttributedString(string: newText as String)
// attributedString.addAttribute(NSKernAttributeName, value: CGFloat(0.05), range: NSRange(location: 0, length: newText.length))
//
// textField.attributedText = attributedString
textField.text = String(newText)
return false
}
Für den „Zinssatz“, mag ich die Eingangs% und Grenze automatisch in dem nur eine Nachkommastelle Punkt machen. Wie kann ich es in Bezug auf ich habe bereits eine Delegiertenfunktion zu realisieren.