[英]enable button if textfield is filled in swift
I have a few text fields in my iOS app and need to disable a button until all fields are filled. 我的iOS应用程序中有几个文本字段,需要禁用按钮,直到所有字段都填满。
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.
似乎没有运行enable button命令。
import UIKit
class ViewController: UIViewController, UITextFieldDelegate { 类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. 感谢任何帮助。 :-)
:-)
Firstly set delegate to all your text field and then implement this method 首先将委托设置为所有文本字段,然后实施此方法
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
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.