[英]Swift - Load Contact Page with Keyboard Open
我正在做一个简单的与我们联系的表单,其中包含姓名,电子邮件地址和消息。 我的viewDidLoad中的以下代码是“名称”文本字段的代码段。 我希望在打开联系表时在此字段上打开键盘。
override func viewDidLoad() {
view.backgroundColor = UIColor.darkGray
let fullNameInput = UITextField()
fullNameInput.frame = CGRect(x: 15, y: 15, width: self.view.frame.width - 2 * margin, height: 50)
fullNameInput.placeholder = "Your Name"
let fullNameString = "Your Name"
let fullNamePlaceholder = NSMutableAttributedString(string: fullNameString)
let fullNameRange = (fullNameString as NSString).range(of: fullNameString)
fullNamePlaceholder.addAttribute(NSForegroundColorAttributeName, value: UIColor.white, range: fullNameRange)
fullNameInput.attributedPlaceholder = fullNamePlaceholder
fullNameInput.backgroundColor = .black
fullNameInput.delegate = self
fullNameInput.layer.cornerRadius = 5.0
fullNameInput.layer.borderWidth = 2.0
fullNameInput.layer.borderColor = UIColor.black.cgColor
fullNameInput.becomeFirstResponder()
self.view.addSubview(fullNameInput)
}
在浏览解决方案时,我相信
fullNameInput.becomeFirstResponder()
成为我希望实现的代码行。 但是,它没有这样做。 我在这里想念什么吗?
附加问题
接下来,我还将在打开的键盘上方对该区域进行滚动查看。
我还如何获得键盘框架?
我正在使用Swift 3.0和iOS 9.2
从becomeFirstResponder()
文档中 :
切勿在不属于活动视图层次结构的视图上调用此方法。
因此,从viewDidLoad
调用它绝对不是一个好主意。 从viewDidAppear
尝试
您必须从viewDidAppear调用它
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
fullNameInput.becomeFirstResponder()
}
您要使fullNameInput
成为视图中的第一响应者。
只需先将其添加为子视图,然后将其称为第一响应者即可使用。
我会按照mag_zbc所说的去做。 在ViewDidAppear
上使用成为第一响应者
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.