将函数与按钮相关联并在Swift中调用它

时间:2015-03-10 18:58:53

标签: ios swift

我对swift有点问题。我有2个变量的文本字段,称为“entréeA”和“entréeB”,我想为这些变量添加数字。但我有条件说文本字段与数字按钮(称为“tracercourbe”)相关联。但我不知道如何调用此功能。有代码:

import UIKit

class ViewController: UIViewController,UITextFieldDelegate {


  @IBOutlet weak var labelA: UILabel!
  @IBOutlet weak var labelB: UILabel!
  @IBOutlet weak var tracerCourbe: UIButton!
  @IBOutlet weak var bouttonPlus: UITextView!
  @IBOutlet weak var entréeB: UITextField!
  @IBOutlet weak var entréeA: UITextField!
  @IBOutlet weak var choixB: UISegmentedControl!

  //
  //
  //
  //
  //enable ou pas le boutton pour tracer

  func bouttonTracer() {
        switch choixB.selectedSegmentIndex {
        case 0:
            if  ((entréeA.text != "") && (entréeA.text != "Valeur de a")) && ((entréeB.text != "") && (entréeB.text != "Valeur de b")){
                self.tracerCourbe.enabled = true
            }
            else {
                self.tracerCourbe.enabled = false
            }
            break;

        case 1:
            if entréeA.text != "" && entréeA.text != "Valeur de a"  {
                self.tracerCourbe.enabled = true
                println("entréa=\(entréeA.text)")
                println("\(tracerCourbe.enabled)")
            }
            else {
                self.tracerCourbe.enabled = false
                println("entréa=\(entréeA.text)")
                println("\(tracerCourbe.enabled)")
            }
            break;

        default:
            break;
        }
    }        
}

2 个答案:

答案 0 :(得分:0)

听起来你想在文本字段发生变化时调用此函数(取决于它所说的内容)

  1. 您需要将文本字段的委托设置为视图控制器。最容易解释的是将以下行添加到viewDidLoad

    entréeA.delegate = self
    entréeB.delegate = self
    
  2. 您需要在视图控制器中实现委托协议

     // this is called when the user edits the text field
     func textField(_ textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool {
          bouttonTracer()
          return true
     }
    

答案 1 :(得分:0)

我尝试使用此代码,但它说b =""当我把" 9"举个例子。但是当我把" 99"时,它说b =" 9"。有我的新代码: func bouttonTracer(){

        switch choixB.selectedSegmentIndex {




        case 0:



            if  ((entréeA.text != "") && (entréeA.text != "Valeur de a")) && ((entréeB.text != "") && (entréeB.text != "Valeur de b")){

                self.tracerCourbe.enabled = true
            }



            else {

                self.tracerCourbe.enabled = false

            }

            break;


        default:
            break;

        }





    }
func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool {
    bouttonTracer()
    return true
}

@IBAction func printValues(sender: AnyObject) {

    println("a = \(entréeA.text)")
    println("b = \(entréeB.text)")

}

你可以看到我有一个动作,显示数字a和b没有任何问题。