2016-11-13 4 views
0

Ich versuche, ein $ -Zeichen an den Anfang eines Textfelds hinzuzufügen. Wenn die Anzahl der Zeichen 1 ist, ist das $ -Zeichen nicht versteckt, aber wenn die Anzahl der Zeichen Null ist, ist das $ -Zeichen ausgeblendet und der Platzhaltertext wird angezeigt. Ich habe den Code, aber es funktioniert nicht. Es wird nicht das $ -Zeichen angezeigt. Kannst du mir bitte helfen. Hier ist der Code unten.Präfix für ein Textfeld funktioniert nicht

override func viewDidLoad() { 
    super.viewDidLoad() 

    self.Price.delegate = self 



    didChangeText() 
} 

var amount: String { 
    get { 
     if self._amount.characters.count > 1 { 
      return (self._amount as NSString).substring(from: 2) 
     } 
     return "" 
    } 
} 

// MARK: - UITextField Observing 


private var newVal: String = "" 
private var _amount: String = "" 

func didChangeText() { 
    if ((Price.text?.characters.count)! > 2) { 
     if Price.text?.range(of: "$ ") == nil { 
      Price.text = newVal 
     } 
    } 

    if ((Price.text?.characters.count)! == 1) && ((Price.text?.characters.count)! > newVal.characters.count) { 
     Price.text = "$ " + Price.text! 
    } 
    if ((Price.text?.characters.count)! == 2) && ((Price.text?.characters.count)! < newVal.characters.count) { 
     Price.text = "" 
    } 
    newVal = Price.text ?? "" 
    _amount = newVal 
} 
+0

es nicht zu reparieren hat. Das ist nicht das, wonach ich gesucht habe. Ich versuche, dem Textfeld ein Präfix hinzuzufügen –

+0

Denken Sie daran, dass Menschen in Europa, Japan und anderen Ländern, die das Symbol "$" für ihre Währung nicht verwenden, nicht mit Ihrer App zufrieden sein werden. Und nicht alle Länder außer dem Währungssymbol vor der Nummer, viele stellen es nach. Verwenden Sie ein 'NumberFormatter'-Setup für die Währung. – rmaddy

+0

können Sie mir zeigen, wie ich das tun könnte –

Antwort

0

Versuche folgende:

let priceField = UITextField(frame: CGRect(x: 0.0, y: 0.0, width: 100.0, height: 30.0)) 
let leftDollarSymbol = UILabel(frame: CGRect(x: 0.0, y: 0.0, width: 15.0, height: 30.0)) 
leftDollarSymbol.textAlignment = .center 
leftDollarSymbol.text = "$" 
priceField.leftView = leftDollarSymbol 

aktualisiert leftDollarSymbol nach Ihrem Bedarf oder Set leftview nil

Verwandte Themen