我的警报控制器操作究竟如何将文本附加到标签?

How exactly would my alert controller action append text to a label?

基本上,我设置了一个警报控制器,这样当我在视图控制器中单击一个按钮时,就会弹出一个警报控制器,我可以在文本字段中键入文字,然后单击“确定”按钮。

参考图片


(来源:ashfurrow.com

并将该文本插入到视图控制器中的标签中。我扩展了此功能,以便我可以在警报控制器中 select 预设关键字(如“好”、“可能”和“几乎”),以加快输入过程,因为输入这些词很多在我的应用程序中。如下图所示

.

我想知道您是否也可以将我 select编辑的那些关键词添加到标签中的任何内容中?每次我尝试单击预设关键字以添加到标签时,它都会删除标签中已有的内容。

具体来说,无论我的标签中已有什么文本,我可以 select 一个预设关键字附加到标签中的内容吗?

这是我到目前为止的第二张图片:

//Editable Text Box with Preset Keywords

@IBOutlet weak var UselessLabel: UILabel!

@IBAction func UselessTapped(_ sender: UIButton) {
    print("Useless Button Tapped")
    openUselessAlert()

}

func openUselessAlert() {
    
    //Create Alert Controller
    let alert9 = UIAlertController (title: "Uselss:", message: nil, preferredStyle: UIAlertControllerStyle.alert)
    
    //preset keyword as button in alert controller
    let bt1 = UIAlertAction(title: "Good", style: UIAlertActionStyle.default){
        (action) in self.UselessLabel.text = "Good"}
    
    alert9.addAction(bt1)
    
    //preset keyword as button in alert controller
    let bt2 = UIAlertAction(title: "Likely", style: UIAlertActionStyle.default){
        (action) in self.UselessLabel.text = "Likely"}
    
    alert9.addAction(bt2)
    
    //preset keyword as button in alert controller
    let bt3 = UIAlertAction(title: "Almost", style: UIAlertActionStyle.default){
        (action) in self.UselessLabel.text = "Almost"}
    
    alert9.addAction(bt3)
    
    //Create Cancel Action
    let cancel9 = UIAlertAction(title: "CANCEL", style: UIAlertActionStyle.cancel, handler: nil)
    
    alert9.addAction(cancel9)

    
    //Create OK Action
    let ok9 = UIAlertAction(title: "OK", style: UIAlertActionStyle.default) { (action: UIAlertAction) in print("OK")
        let textfield = alert9.textFields?[0]
        print(textfield?.text!)
        self.UselessLabel.text = textfield?.text!
    }
    
    alert9.addAction(ok9)
    
    //Add Text Field
    alert9.addTextField { (textfield: UITextField) in
    textfield.text = self.UselessLabel.text           

    textfield.placeholder = "Useless"
    }
    
    //Present Alert Controller
    self.present(alert9, animated:true, completion: nil)
}

请帮忙!在 swift 3 中,您将如何做到这一点?

要将操作文本添加到 UILabel,您可以使用

 let bt3 = UIAlertAction(title: "Almost", style: UIAlertActionStyle.default){
        (action) in self.UselessLabel.text = self.UselessLabel.text + action.title}

如果你想添加到 AlertView 中的 UITextField,那么你必须做这样的事情

let bt3 = UIAlertAction(title: "Almost", style: UIAlertActionStyle.default){
        (action) in if(alert9.textFields.count > 0)
            {
                alert9.textFields[0].text = alert9.textFields[0].text + action.title
            }
          }

希望对您有所帮助