新视图控制器与使用 .isHidden = true 隐藏文本字段
New view controller vs. hiding textfields with .isHidden = true
免责声明:我是编码新手。
我正在制作个人理财应用程序。当用户创建新交易时,我希望他们一次只显示一个文本字段。
在单个视图控制器中,我创建了一个带有 switch 语句的下一个按钮 hide/unhide 文本字段:
@IBAction func nextPressed(_ sender: UIButton) {
buttonCounter += 1
switch buttonCounter {
case 1:
currencyTextField.isHidden = true
nameTextField.isHidden = false
case 2:
nameTextField.isHidden = true
setupDateView()
case 3:
saveTransaction()
default:
print("Error")
}
}
它工作得非常好,但我 运行 遇到了带有多个文本字段的 UITextfield Delegate 的一些问题。
我可以使用 @IBDesignable class customTextField: UITextField
来解决这个问题,但在继续之前我想知道这是否是一种糟糕的编程习惯。我是否仅通过使用单个视图控制器使它过于复杂?这种情况的最佳做法是什么?
提前致谢。
是不是在委托方法中无法跟踪多个文本字段文本的问题?
如果是这种情况,那么最简单的方法就是知道在委托方法中使用哪个文本字段。由于您有两个文本字段 currencyTextField 和 nameTextField.
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
if textField == currencyTextField {
// do something
} else if textField == nameTextField {
// do something
}
return true
}
如果有帮助请告诉我。
免责声明:我是编码新手。
我正在制作个人理财应用程序。当用户创建新交易时,我希望他们一次只显示一个文本字段。
在单个视图控制器中,我创建了一个带有 switch 语句的下一个按钮 hide/unhide 文本字段:
@IBAction func nextPressed(_ sender: UIButton) {
buttonCounter += 1
switch buttonCounter {
case 1:
currencyTextField.isHidden = true
nameTextField.isHidden = false
case 2:
nameTextField.isHidden = true
setupDateView()
case 3:
saveTransaction()
default:
print("Error")
}
}
它工作得非常好,但我 运行 遇到了带有多个文本字段的 UITextfield Delegate 的一些问题。
我可以使用 @IBDesignable class customTextField: UITextField
来解决这个问题,但在继续之前我想知道这是否是一种糟糕的编程习惯。我是否仅通过使用单个视图控制器使它过于复杂?这种情况的最佳做法是什么?
提前致谢。
是不是在委托方法中无法跟踪多个文本字段文本的问题?
如果是这种情况,那么最简单的方法就是知道在委托方法中使用哪个文本字段。由于您有两个文本字段 currencyTextField 和 nameTextField.
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
if textField == currencyTextField {
// do something
} else if textField == nameTextField {
// do something
}
return true
}
如果有帮助请告诉我。