如何使第一个文本输入成为第一响应者并显示键盘与Eureka表格?

时间:2016-07-29 11:28:41

标签: ios swift eureka-forms

我在这里使用Eureka表格swift库:Eureka forms

我希望每次出现视图时,输入表单的第一行成为第一行响应者。我尝试添加.cellUpdate回调,每次出现视图时都会触发,并执行cell.becomeFirstResponder(),但这不起作用。有经验的人可以帮忙吗?感谢。

4 个答案:

答案 0 :(得分:6)

试试这个

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()
    }
}

我希望这有助于你

答案 1 :(得分:1)

受Reinier的回答启发,这是另一种方式。

在设置表单时直接调用$ 0.cell.textField.becomeFirstResponder()。

        form +++ Section()
        <<< ZipCodeRow() {
            $0.value = postal_code
            $0.cell.textField.becomeFirstResponder()
            }

答案 2 :(得分:1)

将其挂接到cellSetup中,这样我们就无需在viewDidAppear中查找该单元格

form +++ Section("")
        <<< TextRow() {
            $0.title = "Name"
            $0.value = list?.name ?? ""
            $0.cellSetup() { cell, row in
                  cell.textField.becomeFirstResponder()
            }
            $0.onChange() {
                self.list.name = $0.value ?? ""
            }
        }

答案 3 :(得分:0)

斯威夫特4:

在ViewDidLoad()中添加:

let row = self.form.rowBy(tag: "TextRow.tag") as! TextRow
row.cell.textField.becomeFirstResponder()