我对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;
}
}
}
答案 0 :(得分:0)
听起来你想在文本字段发生变化时调用此函数(取决于它所说的内容)
您需要将文本字段的委托设置为视图控制器。最容易解释的是将以下行添加到viewDidLoad
entréeA.delegate = self
entréeB.delegate = self
您需要在视图控制器中实现委托协议
// 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没有任何问题。