Swift:插入带有文本输入的警报框(和存储文本输入)

Posted

技术标签:

【中文标题】Swift:插入带有文本输入的警报框(和存储文本输入)【英文标题】:Swift: Insert Alert Box with Text Input (and Store Text Input ) 【发布时间】:2015-04-22 20:41:28 【问题描述】:

在我的viewController 之一中,我想显示一个alert box,提示user 输入此信息。然后,我希望用户使用NSUserDefaults 存储此输入。我怎样才能做到这一点?

提前感谢您!

【问题讨论】:

@MarkBailey 为什么不直接给他一个答案呢?为什么你必须这样? 3 下面的人提供了答案,而你试图表现得聪明a$$ 【参考方案1】:

看看这个:

let alertController = UIAlertController(title: "Email?", message: "Please input your email:", preferredStyle: .alert)

let confirmAction = UIAlertAction(title: "Confirm", style: .default)  (_) in
  guard let textFields = alertController.textFields,
    textFields.count > 0 else 
      // Could not find textfield
      return
  

  let field = textFields[0]
  // store your data
  UserDefaults.standard.set(field.text, forKey: "userEmail")
  UserDefaults.standard.synchronize()


let cancelAction = UIAlertAction(title: "Cancel", style: .cancel)  (_) in 

alertController.addTextField  (textField) in
  textField.placeholder = "Email"


alertController.addAction(confirmAction)
alertController.addAction(cancelAction)

self.present(alertController, animated: true, completion: nil)

【讨论】:

【参考方案2】:

SWIFT 3

func presentAlert() 
    let alertController = UIAlertController(title: "Email?", message: "Please input your email:", preferredStyle: .alert)

    let confirmAction = UIAlertAction(title: "Confirm", style: .default)  (_) in
        if let emailTextField = alertController.textFields?[0] 
            // do your stuff with emailTextField
         
    

    let cancelAction = UIAlertAction(title: "Cancel", style: .cancel)  (_) in 

    alertController.addTextField  (textField) in
        textField.placeholder = "Email"
    

    alertController.addAction(confirmAction)
    alertController.addAction(cancelAction)

    present(alertController, animated: true, completion: nil)

【讨论】:

【参考方案3】:

在 Swift 3 中

let alertController = UIAlertController(title: "SecureStyle", message: "SecureStyle AlertView.", preferredStyle: UIAlertControllerStyle.Alert)
alertController.addTextFieldWithConfigurationHandler  (textField : UITextField) -> Void in
            textField.secureTextEntry = true
            textField.placeholder = "Password"
        
let cancelAction = UIAlertAction(title: "Cancel", style: UIAlertActionStyle.Cancel)  (result : UIAlertAction) -> Void in
            print("Cancel")
        
let okAction = UIAlertAction(title: "OK", style: UIAlertActionStyle.Default)  (result : UIAlertAction) -> Void in
            print(alertController.textFields?.first?.text)
        
alertController.addAction(cancelAction)
alertController.addAction(okAction)
self.presentViewController(alertController, animated: true, completion: nil)

【讨论】:

以上是关于Swift:插入带有文本输入的警报框(和存储文本输入)的主要内容,如果未能解决你的问题,请参考以下文章

当文本字段为空时禁用警报按钮 Swift 3

带有输入键的文本框行号

python如何在文本框中输入信息插入到数据库

Swift:在带有完成按钮的文本框中弹出 DatePicker

使用 Swift 3 在警报消息框标题中添加图像

我可以在 ios 的警报框中放置多个文本框吗?