我觉得我缺少此代码集的基本步骤,并且非常感谢任何见解,因为尽管搜索了这些论坛,但仍找不到很好的解决方案。
我有四个文本字段,两个UI按钮和两个标签。
输入了前三个文本字段后,应启用一个UI按钮,以允许我计算这三个文本字段的总和并将其显示在第一个标签上。
仅当输入了第四个文本字段时,才应启用第二个UI按钮。第二个标签将包含所有四个文本字段的总和。如果不满足这些条件,则应禁用UI按钮。
我的第一种情况工作得很好,但是当我尝试合并第四个文本字段和第二个按钮时,事情变得一团糟。请参阅最后一个片段:regregVTI = AIVTI.text,!regurgVTI.isEmpty
AICalc类:UIViewController {
@IBOutlet weak var PISARadius: UITextField!
@IBOutlet weak var aliasingVelocity: UITextField!
@IBOutlet weak var AIVMax: UITextField!
@IBOutlet weak var AIVTI: UITextField!
@IBOutlet weak var EROAAnswer: UILabel!
@IBOutlet weak var RegurgVolumeAnswer: UILabel!
@IBOutlet weak var calcEROAButton: UIButton!
@IBOutlet weak var regurgVolumeButton: UIButton!
@IBAction func calcEROA(_ sender: UIButton)
{
EROAAnswer.text = String(Int(PISARadius.text!)! + Int(aliasingVelocity.text!)! + Int(AIVMax.text!)!)
}
@IBAction func calcRegurgVolume(_ sender: UIButton)
{
RegurgVolumeAnswer.text = String(Int(PISARadius.text!)! + Int(aliasingVelocity.text!)! + Int(AIVMax.text!)! + Int(AIVTI.text!)!)
}
override func viewDidLoad()
{
super.viewDidLoad()
calcEROAButton.isEnabled = false
regurgVolumeButton.isEnabled = false
PISARadius.addTarget(self, action: #selector(editingChanged(_:)), for: .editingChanged)
aliasingVelocity.addTarget(self, action: #selector(editingChanged(_:)), for: .editingChanged)
AIVMax.addTarget(self, action: #selector(editingChanged(_:)), for: .editingChanged)
AIVTI.addTarget(self, action: #selector(editingChanged(_:)), for: .editingChanged)
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
@objc func editingChanged(_ textField: UITextField) {
if textField.text?.count == 1 {
if textField.text?.first == " " {
textField.text = ""
return
}
}
guard
let pisa = PISARadius.text, !pisa.isEmpty,
let aliasing = aliasingVelocity.text, !aliasing.isEmpty,
let vmax = AIVMax.text, !vmax.isEmpty
else {
calcEROAButton.isEnabled = false
regurgVolumeButton.isEnabled = false
return
}
calcEROAButton.isEnabled = true
let regurgVTI = AIVTI.text, !regurgVTI.isEmpty
}
}
答案 0 :(得分:0)
使用textField.tag或textField.identifier标识文本字段,即可轻松解决问题。
假设您的前三个文本字段同时具有标签1,2,3。
然后在您的文本字段中进行end_Enditing:-
if textfield.tag == 1 {
//Do whatever you want
}
if textfield.tag == 2 {
//Do whatever you want
}
if textfield.tag == 3 {
//Do whatever you want
}
参考此内容可能会解决您的问题。 好运。