检查文本字段实时

时间:2015-08-20 05:35:10

标签: swift

我找到了这个答案How to check text field input at real time?

这就是我要找的东西。但是,我在实际实现此代码时遇到了麻烦。此外,我目前的地理位置使谷歌搜索几乎不可能。

如果在上一个文本字段中输入了正确的数字,我希望能够更改下一个文本字段的背景颜色。 textfield如果在textFieldOne中输入了正确的值,则两种背景颜色将变为绿色。如果值不正确则不会发生任何事情。请帮帮我。我有两个文本字段,名为textFieldOne和textFieldTwo,代码中没有其他内容。

1 个答案:

答案 0 :(得分:0)

只需在主视图控制器中弹出一个空项目(尝试在模拟器上使用iphone 6)

import UIKit    

class ViewController: UIViewController {

    var txtField:UITextField!
    var txtFieldTwo:UITextField!
    var rightNumber = 10

    override func viewDidLoad() {
        super.viewDidLoad()

        //txtFieldOne
        var txtField = UITextField()
        txtField.frame = CGRectMake(100, 100, 200, 40)
        txtField.borderStyle = UITextBorderStyle.None
        txtField.backgroundColor = UIColor.blueColor()
        txtField.layer.cornerRadius = 5
        self.view.addSubview(txtField)

        //txtFieldTwo
        var txtFieldTwo = UITextField()
        txtFieldTwo.frame = CGRectMake(100, 150, 200, 40)
        txtFieldTwo.borderStyle = UITextBorderStyle.None
        txtFieldTwo.backgroundColor = UIColor.blueColor()
        txtFieldTwo.layer.cornerRadius = 5
        self.view.addSubview(txtFieldTwo)

        txtField.addTarget(self, action: "checkForRightNumber", forControlEvents: UIControlEvents.AllEditingEvents)

        self.txtField = txtField
        self.txtFieldTwo = txtFieldTwo

    }

    func checkForRightNumber() {
        let number:Int? = self.txtField.text.toInt()
        if number == rightNumber {
            self.txtFieldTwo.backgroundColor = UIColor.greenColor()
        } else {
            self.txtFieldTwo.backgroundColor = UIColor.blueColor()
        }
    }

}

编辑:添加包含IBOutlets和IBActions的版本

请注意,在此示例中,IBAction已连接到已发送事件/编辑已更改的txtFieldOne

另外,请确保将“文本字段”边框颜色设置为“无”。在故事板中,执行此操作的方法是选择最左边的选项,并在其周围加上虚线边框。这样你就可以为背景着色。您可以使用layer.cornerRadius来设置边框边缘的圆度。

import UIKit

class ViewController: UIViewController {

    @IBOutlet weak var txtField: UITextField!
    @IBOutlet weak var txtFieldTwo: UITextField!

    var rightNumber = 10

    override func viewDidLoad() {
        super.viewDidLoad()
    }

    @IBAction func checkForRightNumber(sender: AnyObject) {
        let number:Int? = self.txtField.text.toInt()
        if number == rightNumber {
            self.txtFieldTwo.backgroundColor = UIColor.greenColor()
        } else {
            self.txtFieldTwo.backgroundColor = UIColor.blueColor()
        }

    }

}