gpt4 book ai didi

ios - Swift:未识别 UITextField

转载 作者:行者123 更新时间:2023-11-28 15:43:28 26 4
gpt4 key购买 nike

我希望用户按下一个按钮,然后让他们能够看到一个警报,他们可以在其中输入内容(以设置服务价格)。另一个逻辑涉及将数据保存到数据库,这与我的问题无关。

我正在使用以下示例:

https://stackoverflow.com/a/30139623/2411290

它确实有效,因为它可以正确显示警报,但是一旦我包含

print("Amount: \(self.tField.text)")

“self.tField.text”无法识别。我得到的具体错误是:

value of type 'testVC' has no member 'tField'

@IBAction func setAmount(_ sender: Any) {

var tField: UITextField!


func configurationTextField(textField: UITextField!)
{
print("generating textField")
textField.placeholder = "Enter amount"
tField = textField

}

func handleCancel(alertView: UIAlertAction!)
{
print("Cancelled")
}

let alert = UIAlertController(title: "Set price of service", message: "", preferredStyle: .alert)

alert.addTextField(configurationHandler: configurationTextField)
alert.addAction(UIAlertAction(title: "Cancel", style: .cancel, handler:handleCancel))
alert.addAction(UIAlertAction(title: "Done", style: .default, handler:{ (UIAlertAction) in
print("Done !!")

}))
self.present(alert, animated: true, completion: {
print("completion block")
print("Amount: \(self.tField.text)") // Error here


})

//// other logic for app
}

最佳答案

tField 是您的 setAmount 函数中的局部变量。它不是类的属性。

改变:

self.tField.text

到:

tField.text

这将允许您访问局部变量。

但真正的问题是为什么要在这个函数中创建 UITextField 的局部变量?为什么在文本字段未在任何地方使用时打印其文本?

很可能您应该访问“完成”按钮的操作处理程序内的警报文本字段。在显示警报的完成 block 内无需执行任何操作。

@IBAction func setAmount(_ sender: Any) {
let alert = UIAlertController(title: "Set price of service", message: "", preferredStyle: .alert)

alert.addTextField(configurationHandler: { (textField) in
print("generating textField")
textField.placeholder = "Enter amount"
})

alert.addAction(UIAlertAction(title: "Cancel", style: .cancel) { (action) in
print("Cancelled")
})

alert.addAction(UIAlertAction(title: "Done", style: .default) { (action) in
print("Done !!")
if let textField = alert.textFields?.first {
print("Amount: \(textField.text)")
}
})

self.present(alert, animated: true, completion: nil)
}

关于ios - Swift:未识别 UITextField,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43420057/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com