2016-11-13 5 views
0

テキストフィールドの先頭に$記号を追加しようとしています。文字カウントが1の場合、$記号は表示されませんが、文字数がゼロの場合は、$記号が非表示になり、プレースホルダテキストが表示されます。私はコードを持っていますが、動作しません。 $記号は表示されません。手伝ってくれませんか。以下にコードを示します。テキストフィールドのプレフィックスが機能しない

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

nilのあなたの必要性や設定leftviewあたりとして、それはそれを修正しませんでした。それは私が探していたものではありません。テキストフィールドに接頭辞を追加しようとしています –

+0

ヨーロッパ、日本、およびその通貨に '$ '記号を使用しない国々の人々は、あなたのアプリに満足できないことに注意してください。そして、すべての国ではなく、数の前の通貨記号が、多くの後に置く。通貨に 'NumberFormatter'設定を使用してください。 – rmaddy

+0

あなたは私がそれをどうすることができるか私に教えてください –

答えて

0

次のことを試してみてください。

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 

更新leftDollarSymbol

関連する問題