I have a few text fields in my iOS app and need to disable a button until all fields are filled.
Hope someone here can help me with that code and where it should go.
Here is what I have tried but not getting right. It seems to not run the enable button command.
import UIKit
class ViewController: UIViewController, UITextFieldDelegate {
@IBOutlet weak var panelWidthTextField: UITextField!
@IBOutlet weak var panelHightTextField: UITextField!
@IBOutlet weak var panelsWideTextField: UITextField!
@IBOutlet weak var panelsHightTextField: UITextField!
@IBOutlet weak var panelPitchTextField: UITextField!
@IBOutlet weak var calculateButton: UIButton!
@IBOutlet weak var resultWithLabel: UILabel!
@IBOutlet weak var resultHightLabel: UILabel!
// Removes keyboard when touch outside edit field.
override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?){
    view.endEditing(true)
    super.touchesBegan(touches, withEvent: event)
}
func textFieldDidEndEditing(textField: UITextField) {
    if ((panelWidthTextField.text?.isEmpty != nil) && (panelsWideTextField.text?.isEmpty != nil) && (panelHightTextField.text?.isEmpty != nil) && (panelPitchTextField.text?.isEmpty != nil)){
        self.calculateButton.enabled = false
    }else{
        self.calculateButton.enabled = true
    }
}
override func viewDidLoad() {
    super.viewDidLoad()
    panelWidthTextField.delegate = self
    panelsWideTextField.delegate = self
    panelHightTextField.delegate = self
    panelsHightTextField.delegate = self
    panelPitchTextField.delegate = self
}
override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.
}
override func viewWillAppear(animated: Bool) {
    // Hideo button
}
func calculatePressButton(sender: AnyObject) {
    let w = Double(panelWidthTextField.text!)
    let sw = Double(panelsWideTextField.text!)
    let pi = Double(panelPitchTextField.text!)
    let sizew = SizeWidthModel(pw:w!,psw:sw!,ptc:pi!)
    resultWithLabel.text=String(sizew.width())
    let h = Double(panelHightTextField.text!)
    let sh = Double(panelsHightTextField.text!)
    let sizeh = SizeHightModel(ph:h!,psh:sh!,ptc:pi!)
    resultHightLabel.text=String(sizeh.hight())
}
}
All I get when starting to fill inn fields is this. erro
Appreciate any help. :-)
 
    