2017-07-07 5 views
1

ではオフになっていますUILabelは、私はに走った問題を実証するサンプルアプリケーションされています。ここではバグ? UITextFieldDelegateによるライブ更新は1つの文字ここ

import UIKit 

class ViewController: UIViewController, UITextFieldDelegate { 

    @IBOutlet weak var aTextField: UITextField! 
    @IBOutlet weak var aTextLbl: UILabel! 
    override func viewDidLoad() { 
     super.viewDidLoad() 
     aTextField.delegate = self 
    } 

    func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool { 
     aTextLbl.text = aTextField.text 
     return true 
    } 
} 

はデモです:

Link to Animated Gif

私の質問をされますどのようにラベルをテキストフィールドに入力したものと正確に同期させるようにするのですか?ありがとう!

+0

を参照してください。例えばhttps://stackoverflow.com/questions/28394933/how-do-i-check-when-a-uitextfield-changes。 –

答えて

2

代理メソッドshouldChangeCharactersInを使用するのではなく、EditingChangedを次のように使用できます。

import UIKit 

class ViewController: UIViewController { 

    @IBOutlet weak var aTextLbl: UILabel! 
    @IBOutlet weak var aTextField: UITextField! 

    override func viewDidLoad() { 
     super.viewDidLoad() 
    } 

    @IBAction func editingChanged(_ sender: UITextField) { 
     aTextLbl.text = aTextField.text 
    } 
} 

enter image description here

+0

迅速な対応をありがとう!あなたは少し具体的にすることができます、私はキーワード "EditingChanged"を持つ関数を見つけることができませんでした。ありがとう! –

+0

私の答えを更新しました。 – Lawliet

+0

私は今日「価値の変化」を試みたが、それはうまくいかなかった。しかし、 "変更された編集"は本当に素晴らしいです!ありがとうございました! –

0

あなたにも、この使用UITextFieldDelegate機能を行うことができます。あなたは手動で以下のようにtextField.text値に文字列を追加する必要が

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

    let currentText = txtFldPassword.text 
    let newText = (currentText! as NSString).replacingCharacters(in: range, with: string) 
    print(newText) 

    return true 
} 
関連する問題