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

Posted

技术标签:

【中文标题】如何使第一个文本输入成为第一响应者并使用 Eureka 表单显示键盘?【英文标题】:How to make first text input become first responder and show keyboard with Eureka forms? 【发布时间】:2016-07-29 11:28:40 【问题描述】:

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

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

【问题讨论】:

你的单元格是什么类型的?是 TextRow、ImageRow 等? 【参考方案1】:

试试这个

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

希望对你有帮助

【讨论】:

谢谢雷尼尔!!!我看到你是 Eureka 的贡献者。如果您能看看我的另一个问题,将不胜感激:***.com/questions/38662315/… @demig0d 我会看到并发布我的结果,别担心 非常感谢! 这似乎不适用于 ios 10 或较新的 Eureka。有效的是在viewDidAppear 中调用它而不是viewWillAppear 如果我们有一个 PickerInputRow,我们想让它作为 firstResponder 怎么办?【参考方案2】:

在cellSetup中钩住,这样我们就不需要在viewDidAppear中查找cell了

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】:

受 Reinier 的回答启发,这是另一种对我有用的方法。

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

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

【讨论】:

这不适用于 iOS 10 或更新的 Eureka。【参考方案4】:

斯威夫特 4:

在 ViewDidLoad() 中添加:

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

【讨论】:

以上是关于如何使第一个文本输入成为第一响应者并使用 Eureka 表单显示键盘?的主要内容,如果未能解决你的问题,请参考以下文章

iOS 如何使 inputaccessoryview 中的文本视图成为第一响应者?

成为第一响应者后如何识别点击文本视图?

UITableView 中的 UITextField 没有成为第一响应者

在警报中选择选项时,如何防止我的文本字段成为第一响应者?

如何使表格单元格中的 UITextField 成为第一响应者?

如何在表格单元格中创建UITextField成为第一响应者?