ios - 在没有 Storyboard的情况下以编程方式在 UITextField 上调用 resignFirstResponder

标签 ios swift uitableview cocoa-touch uitextfield

我有一个带有 UITextField 的自定义 UITableViewCell,它在自定义类中具有变量。我没有使用 Storyboard,所以我没有导出;我正在以编程方式执行此操作。

我在 UIViewController 中使用 textFieldDidEndEditing 来获取用户提供的值。

    public func textFieldDidEndEditing(_ textField: UITextField)
    {
        print("textvalue=\(textField.text!)")
    }

但是,如果点击导航栏按钮,则不会调用 textFieldDidEndEditing。我通常知道,如果我的 UIViewController 上有一个 socket 和一个文本字段变量,我可以使用 resignFirstResponder 这可能会导致 textFieldDidEndEditing 被调用,但正如我所说,我不是使用 socket / Storyboard。

我的 UIViewController 上的文本字段没有此变量,因此我没有任何可调用 resignFirstResponder 的内容。

我想我可以在自定义 UITableViewCell 中调用 resignFirstResponder 但我无权访问我的模型。

最佳答案

可以通过使用 UITableViewDelegate 中的 tagsaccessibility 等标识符来识别您的文本字段,然后使用可以使用,

在创建单元格时设置委托(delegate)

  override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell{
    cell.txtField.delegate = self

  }

  // then it will be called UITextFieldDelegate

  public func textFieldDidEndEditing(_ textField: UITextField)
  {

  }

或者您可以按照 subview 的层次结构使用:

self.view.endEditing(true)

关于ios - 在没有 Storyboard的情况下以编程方式在 UITextField 上调用 resignFirstResponder,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54382017/

相关文章:

ios - 使用 Swift 3 将大型 JSON 保存到 Realm

ruby - 在 Swift 中生成强力球选秀权的一行?

ios - 根据单元格选择,使用 NSArray 中的选择对象重新加载 UITableView

ios - 无法同时满足约束。尽管没有定义重复/不需要的约束

swift - 在 iOS16.4 中 TextField 内的电子邮件提示呈现蓝色

ios - xcode 快速约束问题与 tableview 和 uilabel 休息

ios - iOS 移动应用程序性能测试最好用哪个工具

ios - 如何仅在 Debug模式下启用3D触摸(静态快速操作)?

ios - 选择一个 TableViewCell 为 indexPathForSelectedRow()?.row 在 Swift 中提供 nil

ios - iOS 15.1 设备 (iPhone) 上的 Charles 代理网络跟踪