我找到了这个答案How to check text field input at real time?
这就是我要找的东西。但是,我在实际实现此代码时遇到了麻烦。此外,我目前的地理位置使谷歌搜索几乎不可能。
如果在上一个文本字段中输入了正确的数字,我希望能够更改下一个文本字段的背景颜色。 textfield如果在textFieldOne中输入了正确的值,则两种背景颜色将变为绿色。如果值不正确则不会发生任何事情。请帮帮我。我有两个文本字段,名为textFieldOne和textFieldTwo,代码中没有其他内容。
答案 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()
}
}
}