如何在警报中访问 Uitextfield 的文本?

Posted

技术标签:

【中文标题】如何在警报中访问 Uitextfield 的文本?【英文标题】:how can i access the text of an Uitextfield in an alert? 【发布时间】:2019-10-21 19:13:01 【问题描述】:

我创建了一个带有两个文本字段的警报,第二个文本字段的 inputView 是一个pickerview。我可以通过 alert.textfields?.first?.text 访问第一个文本字段的文本。我想在第二个文本字段中显示选择器视图项,但我不知道如何在选择器视图函数 didSelectRow 中访问 secondTextfield.text。 我该如何解决?

 buttonAnimation(button: addButton)
     passwordStringArray.insert("\(passwordLabel.text ?? "")", at: 0)

        let alert = UIAlertController(title: "\(passwordLabel.text ?? "")", message: "customize your password", preferredStyle: .alert)

        alert.addTextField  (notesTextfield) in
            notesTextfield.placeholder = "type in some notes"
            notesTextfield.textAlignment = .center
        
        alert.addTextField  (categoryTextfield) in
            categoryTextfield.placeholder = "choose your password category"
            categoryTextfield.textAlignment = .center
            categoryTextfield.inputView = self.picker

        

        let actionSave = UIAlertAction(title: "save", style: .default)  (cancelButton) in
            self.dismiss(animated: true, completion: nil)
            self.passwordNotesArray.insert("\(alert.textFields?.first?.text ?? "")", at: 0)
//            self.passwordCategory.insert(categorytextfield.text)

            self.performSegue(withIdentifier: "segue", sender: self)
        

        let actionCancel = UIAlertAction(title: "cancel", style: .default)  (saveButton) in
            self.dismiss(animated: true, completion: nil)

        

        alert.addAction(actionCancel)
        alert.addAction(actionSave)

        self.present(alert, animated: true)
    





func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) 

        // how can i access alert.textfield.categorytectfield.text here ?
    

【问题讨论】:

看这里 在行动中你必须创建闭包:) 我希望这有助于***.com/questions/26567413/… 闭包是什么意思? 还是不行:/ 【参考方案1】:

如果需要,您可以仅将其用作占位符。如果你想这样做,你必须创建一个警报函数,它可以从选择器函数中获取一个参数。你想要它作为占位符吗?使用占位符非常简单。如果你想把数据放在那里,我认为这是不可能的,因为警报应该获取数据,而不是里面。

要放置数据以提醒您的警报功能,需要从 pickerView 中获取一个字符串参数。必须在 pickerview didselect 函数内调用警报。

【讨论】:

以上是关于如何在警报中访问 Uitextfield 的文本?的主要内容,如果未能解决你的问题,请参考以下文章

警报视图中的文本字段未在 iOS 7 上显示 [关闭]

如何将我的文本添加到 iOS 日历访问权限警报?

iPhone:如何在自定义单元的动态数量上管理 UITextfield 委托方法

iOS:如何从 tableview 的自定义单元格中的 UITextField 访问值

如何在 UITableViewCell 中提取 UITextField 的文本值?

按下按钮后 UIAlert 验证中的 Swift3 UITextField