如何使第一个文本输入成为第一响应者并使用 Eureka 表单显示键盘?
How to make first text input become first responder and show keyboard with Eureka forms?
我在这里使用 Eureka 表单 swift 库:Eureka forms
我想让输入表单的第一行成为每次视图出现时的第一响应者。我尝试添加一个 .cellUpdate 回调,每次出现视图时都会触发该回调,并执行 cell.becomeFirstResponder() 但这没有用。有这个图书馆经验的人可以帮忙吗?谢谢
试试这个
import UIKit
import Eureka
class ViewController3: FormViewController {
override func viewDidLoad() {
super.viewDidLoad()
form +++ Section("Custom cells")
<<< TextRow("TextRow"){_ in
}
}
override func viewWillAppear(animated: Bool) {
super.viewWillAppear(animated)
let row = self.form.rowByTag("TextRow") as! TextRow
row.cell.textField.becomeFirstResponder()
}
}
希望对你有帮助
受 Reinier 回答的启发,这是另一种对我有用的方法。
在设置表单时直接调用$0.cell.textField.becomeFirstResponder()
form +++ Section()
<<< ZipCodeRow() {
[=10=].value = postal_code
[=10=].cell.textField.becomeFirstResponder()
}
Swift 4:
在 ViewDidLoad() 中添加:
let row = self.form.rowBy(tag: "TextRow.tag") as! TextRow
row.cell.textField.becomeFirstResponder()
在cellSetup中挂钩,这样我们就不需要在viewDidAppear中查找cell
form +++ Section("")
<<< TextRow() {
[=10=].title = "Name"
[=10=].value = list?.name ?? ""
[=10=].cellSetup() { cell, row in
cell.textField.becomeFirstResponder()
}
[=10=].onChange() {
self.list.name = [=10=].value ?? ""
}
}
我在这里使用 Eureka 表单 swift 库:Eureka forms
我想让输入表单的第一行成为每次视图出现时的第一响应者。我尝试添加一个 .cellUpdate 回调,每次出现视图时都会触发该回调,并执行 cell.becomeFirstResponder() 但这没有用。有这个图书馆经验的人可以帮忙吗?谢谢
试试这个
import UIKit
import Eureka
class ViewController3: FormViewController {
override func viewDidLoad() {
super.viewDidLoad()
form +++ Section("Custom cells")
<<< TextRow("TextRow"){_ in
}
}
override func viewWillAppear(animated: Bool) {
super.viewWillAppear(animated)
let row = self.form.rowByTag("TextRow") as! TextRow
row.cell.textField.becomeFirstResponder()
}
}
希望对你有帮助
受 Reinier 回答的启发,这是另一种对我有用的方法。
在设置表单时直接调用$0.cell.textField.becomeFirstResponder()
form +++ Section()
<<< ZipCodeRow() {
[=10=].value = postal_code
[=10=].cell.textField.becomeFirstResponder()
}
Swift 4:
在 ViewDidLoad() 中添加:
let row = self.form.rowBy(tag: "TextRow.tag") as! TextRow
row.cell.textField.becomeFirstResponder()
在cellSetup中挂钩,这样我们就不需要在viewDidAppear中查找cell
form +++ Section("")
<<< TextRow() {
[=10=].title = "Name"
[=10=].value = list?.name ?? ""
[=10=].cellSetup() { cell, row in
cell.textField.becomeFirstResponder()
}
[=10=].onChange() {
self.list.name = [=10=].value ?? ""
}
}