0

how can i what ever i type in textField immediately show it in labelView without button that do it ?

import UIKit

class ViewController: UIViewController {

@IBOutlet weak var labelView: UILabel!
@IBOutlet weak var textViewout: UITextField!

override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view, typically from a nib.
}

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.

}

}

1 Answers1

0

It's best to use UITextField's delegate:

class ViewController: UIViewController, UITextFieldDelegate {

    @IBOutlet weak var labelView: UILabel!
    @IBOutlet weak var textViewout: UITextField!

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
        textViewout.delegate = self
    }

    func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool {
        labelView.text = textViewout.text
        return true
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.

    }
}

EDIT:

Sorry, it actually is not exactly the best solution. It will be delayed. This should work more efficiently for you:

class ViewController: UIViewController {

    @IBOutlet weak var labelView: UILabel!
    @IBOutlet weak var textViewout: UITextField!

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
        textViewout.addTarget(self, action: "updateLabel", forControlEvents: .EditingChanged)
    }

    func updateLabel() {
        labelView.text = textViewout.text
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.

    }
}
konrad.bajtyngier
  • 1,731
  • 11
  • 13