ios - 如果快速填充文本字段,则启用按钮

标签 ios swift xcode7

我的 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

感谢任何帮助。 :-)

最佳答案

首先将委托(delegate)设置为所有文本字段,然后实现此方法

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
        }
    }

关于ios - 如果快速填充文本字段,则启用按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34393248/

相关文章:

ios - AVMutableVideoComposition 停止渲染视频

ios - 如何在 AFNetworking 中设置授权 header

ios - 观察添加到 Set 的值 - Swift

json - Swift:从 NSURLSession 任务返回 JSON 字符串

swift - 使用备用数据创建 Swift HTTP 模拟

ios - 如何为 UITabBarController 中包含两次的同一 Storyboard引用设置不同的 UITabBarItems?

xcode - 如何同时运行 Xcode 7 和 8?

ios - 在提交之前将链接添加到我的iPhone应用程序(“第22章”)

xcode7 - Xcode Fix-it快捷方式

ios - 使用 xcode 7.2 永远编译模型文件