2016-09-08 1 views
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.

Antwort

0
var amountTextField: UITextField? 
var interestRateTextField: UITextField? 

func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool { 

    if textField == amountTextField { 
     // Do you stuff with amountTextField 
    } else if textField == interestRateTextField { 
     // Do you stuff with interestRateTextField 
    } 

    return false 

} 
Verwandte Themen