【问题标题】:How to reference a textfields using swift?如何使用 swift 引用文本字段?
【发布时间】:2019-09-22 00:55:23
【问题描述】:

我想使用 alert.textFields?.last?.textalert.textFields?.last?.text 函数引用两个以上的文本字段输入,但我不确定如何引用第一个和最后一个之间的字段。

    let alert = UIAlertController(title: "Insert Student", message: nil, preferredStyle: .alert)
    alert.addTextField{ (tf) in tf.placeholder = "Name" }
    alert.addTextField{ (tf) in tf.placeholder = "House" }
    alert.addTextField{ (tf) in tf.placeholder = "Score" }

    let action = UIAlertAction (title:"Submit", style: .default) { (_) in
        guard let name = alert.textFields?.first?.text,
        let house = alert.textFields?.last?.text,
            let score = alert.textFields?.last?.text

【问题讨论】:

  • 你尝试添加标签了吗?
  • 请解释一下我是编码新手? @Brkr
  • @becci alert.textFields 是一个包含所有文本字段的数组。你可以得到let name = alert.textFields[0].text; let house = alert.textFields[1].text; let score = alert.textFields[2].text

标签: swift xcode sqlite debugging field


【解决方案1】:
let alert = UIAlertController(title: "Insert Student", message: nil, preferredStyle: .alert)
    alert.addTextField{ (tf) in
        tf.placeholder = "Name"
        tf.tag = 11
    }
    alert.addTextField{ (tf) in
        tf.placeholder = "House"
        tf.tag = 12
    }
    alert.addTextField{ (tf) in
        tf.placeholder = "Score"
        tf.tag = 13
    }

    let action = UIAlertAction (title:"Submit", style: .default) { (_) in
        guard let nameTextField = alert.view.viewWithTag(11) as? UITextField,
            let houseTextField = alert.view.viewWithTag(12) as? UITextField,
            let scoreTextField = alert.view.viewWithTag(13) as? UITextField else { return }

        guard let name = nameTextField.text,
            let house = houseTextField.text,
            let score = scoreTextField.text else { return }
    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-07-05
    • 1970-01-01
    • 2016-10-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-15
    • 2014-10-26
    相关资源
    最近更新 更多