基本上,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.我在想,如果你还可以编辑我选择的关键词?每次我尝试添加文本到标签中的任何文本时,我都必须从空白文本框开始。标签 - > Alert Controller Textfield?我可以在警报控制器的文本字段中编辑标签中的预先存在的文本吗? Swift 3,Xcode 8,IOS
具体来说,无论我的标签中是否有文本,我可以在文本框中准备好文本以进行编辑,下次我拉起警报控制器?
这是我到目前为止,第二图像:
//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'属性设置为所需值而不是设置其占位符。就那么简单。 – Losiowaty
我试过“textfield.text = self.UselessLabel.text”,并且工作,但只做了一半的工作。它允许我编辑标签中的现有单词,但是如何将预设关键字添加到标签中的任何内容?当我点击一个预设关键字时,问题就出现了,它只会在标签中显示该关键字,并删除之前的任何内容。 – DanielG
啊,这实际上是有点棘手:)你需要修改你的动作处理程序,以便他们追加文本,而不是设置预定义的常量。如果你谷歌“斯威夫特追加标签”你一定会找到有用的;) – Losiowaty