【问题标题】:Material Textfield crash on setting error textMaterial Textfield 在设置错误文本时崩溃
【发布时间】:2019-02-23 02:00:40
【问题描述】:

我正在使用 CosmicMind 库进行材料设计,我正在尝试设置基本的 textfields 并进行一些错误检查,但文档不是很好。

我的文本字段设置如下:

@IBOutlet weak var userNameField: ErrorTextField!

userNameField.placeholder = "Enter Username"
userNameField.delegate = self
userNameField.error = "Text is too long" // App Crashes here
userNameField.errorColor = Color.red.base

应用程序因EXC_BAD_ACCESS 而崩溃

我这样验证我的字段:

func textField(textField: TextField, didChange text: String?) {

    if textField == userNameField {

        if validateUsername(text: textField.text!) {
            userNameField.isErrorRevealed = true
        } else {
            userNameField.isErrorRevealed = false
        }
    }
}

即使我删除该行,应用程序也会在 userNameField.isErrorRevealed = true 上崩溃。

【问题讨论】:

  • 你能分享我们可以复制的演示项目吗?
  • 在该行放一个断点并在 consol 中 po usernamefield 并检查你得到了什么

标签: swift cosmicmind


【解决方案1】:

我已经使用您正在使用的相同库创建了以下代码,这些代码运行良好。我以编程方式创建了textField

import UIKit
import Material

class ViewController: UIViewController {

    fileprivate var emailField: ErrorTextField!

    override func viewDidLoad() {
        super.viewDidLoad()
        view.backgroundColor = Color.grey.lighten5

        emailField = ErrorTextField()
        emailField.placeholder = "Email"
        emailField.error = "Text is too long"
        emailField.delegate = self

        self.view.layout(emailField).height(40).width(200).centerVertically().centerHorizontally()
    }
}

extension ViewController: TextFieldDelegate {

    public func textFieldDidEndEditing(_ textField: UITextField) {
        (textField as? ErrorTextField)?.isErrorRevealed = false
    }

    public func textFieldShouldClear(_ textField: UITextField) -> Bool {
        (textField as? ErrorTextField)?.isErrorRevealed = false
        return true
    }

    func textFieldShouldReturn(_ textField: UITextField) -> Bool {
        (textField as? ErrorTextField)?.isErrorRevealed = true
        return true
    }
}

查看此示例项目:Sample Project

希望对你有帮助。

【讨论】:

    猜你喜欢
    • 2011-05-08
    • 1970-01-01
    • 2019-05-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多