【发布时间】:2017-02-28 18:37:30
【问题描述】:
基本上,i have an alert controller set up so that when i click a button in the view controller, an alert controller pops up and i can type words into a textfield, click an "OK" button 会将文本插入到视图控制器的标签中。我已经扩展了这个能力,所以我可以拥有preset keywords (like "Good," "Likely" and "Almost") that i can select from in the alert controller to speed up the typing process, as these words are typed a lot in my app. 我想知道你是否也可以编辑我选择的那些关键词?每次我尝试将文本添加到标签中的任何文本时,我都必须从空白文本字段开始。
具体来说,无论我的标签中已有什么文本,我可以在我的文本字段中准备好该文本以进行编辑,下次我拉起警报控制器吗?
这是我到目前为止的第二张图片:
//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.placeholder = "Useless"
}
//Present Alert Controller
self.present(alert9, animated:true, completion: nil)
}
请帮忙!总的来说,我对 Xcode 和编程真的很陌生,所以在这方面我是个大白痴。
谢谢:)
【问题讨论】:
-
无意冒犯,但如果您仔细查看您的代码,实现这一点非常简单。只需将
textfield.text属性设置为所需的值,而不是设置其占位符。就这么简单。 -
我尝试了 "textfield.text = self.UselessLabel.text" 并且有效,但只完成了一半的工作。它允许我编辑标签中的现有单词,但我如何将预设关键字添加到标签中的任何内容?当我单击预设关键字时出现问题,它仅在标签中显示该关键字并删除之前的所有内容。
-
啊,这实际上有点棘手 :) 您需要修改您的操作处理程序,以便它们附加文本,而不是设置预定义的常量。如果你用谷歌搜索“Swift append to label”,你一定会找到有用的东西;)
-
哦,伙计,我注定要失败,哈哈。无论如何你可以帮我写代码吗?你已经帮了很多忙。一半的工作仍然很有用,毕竟你回答了我的问题。我只是不知道如何编码大声笑
标签: ios swift3 label textfield uialertcontroller