2016-10-03 4 views
0
override func textView(textView: UITextView, shouldChangeTextInRange range: NSRange, replacementText text: String) -> Bool { 

     label.text = textView.text 
     return true; 
} 

このコードでは、私は背後の人物のようです。UITextViewでの入力中にUILabelを更新する

答えて

3

shouldChangeTextInRangeの前にと呼びます。テキストフィールドのテキスト値が変更されます。

代わりtextViewDidChangeでコードを入れてみてください:

func textViewDidChange(textView: UITextView) { 
    label.text = textView.text 
} 
1

前のtextViewのテキストを設定しています。試してみてください。

override func textView(textView: UITextView, shouldChangeTextInRange range: NSRange, replacementText text: String) -> Bool { 

     label.text = text 
     return true; 
} 

のTextViewの新しいテキストが伝播される前に、このメソッドが呼び出されるよう。

-1

あなたがテキストを入力してもらうためにNSStringreplacingOccurrences(of:with:)を使用することができ、この

ようSwift2

func textView(textView: UITextView, shouldChangeTextInRange range: NSRange, replacementText text: String) -> Bool { 
    let originText = textView.text as NSString 
    let replacingText = originText.stringByReplacingCharactersInRange(range, withString: text) 

    label.text = replacingText 
    return true 
} 

Swift3

func textView(_ textView: UITextView, shouldChangeTextIn range: NSRange, replacementText text: String) -> Bool { 
    let originText = textView.text as NSString 
    let replacingText = originText.replacingCharacters(in: range, with: text) 

    label.text = replacingText 
    return true 
} 
関連する問題