在没有情节提要的 UITextField 上以编程方式调用 resignFirstResponder



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

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

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

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

我的UIViewController上没有这个变量用于文本字段,所以我没有什么可以调用resignFirstResponder的。

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

可以通过使用标识符(例如 tagsaccessibility from UITableViewDelegate 然后使用可以使用来识别您的文本字段,

在中创建单元格时设置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)
  {
  }

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

self.view.endEditing(true)

相关内容

  • 没有找到相关文章

最新更新