2015-12-21 118 views
0

我的iOS應用程序中有幾個文本字段,需要禁用按鈕,直到所有字段填充。啓用按鈕,如果文本字段快速填充

希望這裏的某個人可以幫助我解決這個問題,以及它應該去的地方。

這是我試過但沒有得到正確的。它似乎不運行啓用按鈕命令。

import UIKit 

類的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()) 

}

} 

全部開始填充客棧領域時,我得到的就是這個。 erro

感謝任何幫助。 :-)

+0

什麼是'無效; textFieldDidChange; :(UITextField *)textField'應該是?這看起來不像我的工作代碼。 – luk2302

+0

@ lightmaster2006你在尋找swift嗎? –

+0

@ luk2302我停下來的地方,這不是一個工作代碼,這就是爲什麼我要求這個快速項目的幫助。 – lightmaster2006

回答

2

首先委託設爲您所有的文本字段,然後實現此方法

func textFieldDidEndEditing(textField: UITextField) { 
     if ((panelWidthTextField.text?.isEmpty != nil) && (panelsWideTextField.text?.isEmpty != nil) && (panelHightTextField.text?.isEmpty != nil) && (panelPitchTextField.text?.isEmpty != nil)){ 
      self.calculateButton.enabled = true 
     }else{ 
      self.calculateButton.enabled = false 
     } 
    } 
+0

謝謝,這讓我更接近我需要的東西:-)但是,你能向我解釋如何以及在哪裏設置代表? – lightmaster2006

+0

@ lightmaster2006 panelWidthTextField.delegate = self併爲所有文本字段放置相同的代碼。 –

+0

@穆克什喬德里,但我把它放在代碼中?看到上面的整個代碼。 – lightmaster2006