【问题标题】:New view controller vs. hiding textfields with .isHidden = true新视图控制器与使用 .isHidden = true 隐藏文本字段
【发布时间】:2023-03-12 03:01:01
【问题描述】:

免责声明:我是编码新手。

我正在制作个人理财应用。当用户创建一个新事务时,我希望他们一次只显示一个文本字段。

在单个视图控制器中,我创建了一个带有 switch 语句的下一个按钮来隐藏/取消隐藏文本字段:

@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 委托的一些问题。

我可以通过@IBDesignable class customTextField: UITextField 解决这个问题,但在我继续之前,我想知道这是否是一种糟糕的编程习惯。我是否仅使用单个视图控制器使其过于复杂?这种情况的最佳做法是什么?

提前致谢。

【问题讨论】:

    标签: ios swift uitextfield viewcontroller uitextfielddelegate


    【解决方案1】:

    是不是委托方法中不能跟踪多个文本字段的问题?

    如果是这种情况,那么最简单的方法是知道在委托方法中使用什么文本字段。因为您有两个文本字段 currencyTextFieldnameTextField

    func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
        if textField == currencyTextField {
            // do something
        } else if textField == nameTextField {
            // do something
        }
        return true
    }
    

    如果有帮助,请告诉我。

    【讨论】:

    • 是的,那是我的问题。我会试试这个,谢谢!
    • 啊,我很高兴它有帮助。请不要忘记将最有助于解决问题的答案标记为已接受。如果你不知道怎么accepting works
    猜你喜欢
    • 1970-01-01
    • 2011-06-13
    • 2021-07-22
    • 1970-01-01
    • 1970-01-01
    • 2013-10-03
    • 1970-01-01
    • 1970-01-01
    • 2013-04-27
    相关资源
    最近更新 更多