ios - 以编程方式创建 UItextfield,以后如何在 Swift 中获取文本?
问题描述
我在 viewDidAppear 类中以编程方式创建了一个 UITextField,如下所示:
let userfield: UITextField = UITextField(frame: CGRect(x: 0, y: 0, width: 500.00, height: 30.00));
userfield.backgroundColor = UIColor.white
userfield.borderStyle = UITextField.BorderStyle.roundedRect
userfield.keyboardType = .emailAddress
userfield.placeholder = "Email"
view.addSubview(userfield)
但是,当我尝试在另一个函数中调用它时,文本字段显示没有问题:
@objc func buttonregisteraction(sender: UIButton!) {
if let username = userfield.text, let password = password.text
我收到此错误:“未解析的标识符'userfield'”
我见过同样的问题,但只在 Objective-C 中。
解决方案
您已声明userfield
为仅在内部可用的变量viewDidAppear
。您需要使其成为视图控制器的属性。
class YourViewController: UIViewController {
var userfield: UITextField! // declare it here
override func viewDidLoad() {
super.viewDidLoad()
userfield = UITextField(frame: CGRect(x: 0, y: 0, width: 500.00, height: 30.00));
userfield.backgroundColor = UIColor.white
userfield.borderStyle = UITextField.BorderStyle.roundedRect
userfield.keyboardType = .emailAddress
userfield.placeholder = "Email"
view.addSubview(userfield)
}
}
现在您可以userfield
从视图控制器中的任何方法访问,包括您的按钮操作。
推荐阅读
- python - 使用布尔值选择 DataFrame 列
- node.js - nodejs数据库持续连接
- reactjs - 是否可以断言一个函数是否是一个空函数?
- javascript - 在 ASP.NET Core 中创建具有无序列表的树
- java - Firebase Google 登录不起作用
- kibana - kibana - 多个主机的 metricbeat 仪表板
- python - 如何从 Web 浏览器中隐藏服务器端 python 文件?
- java - Hibernate `Session` 是否有一个名为 `find()` 的方法,它接受 HQL 字符串?
- java - 如何使用 Selenium Webdriver 将数据输入到模态窗口?
- ios - Ios-Moe 上的 LIBGDX Box2D 灯