的UITextField不可编辑,并没有显示键盘(UITextField not editable

2019-10-30 06:56发布

我使用的是表视图控制器来显示内容。 我试图做一个可编辑的UITextField,但它是不可编辑。 我可以让他们在每一个单元格中显示,但是当我在他们身上挖掘它们是不可编辑的。 我也尝试存储哪些用户在每个小区进入。 请忽略的注释部分。 这里是我的代码:

override func numberOfSections(in tableView: UITableView) -> Int {
    return 1
}
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    return words.count
}


override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCell(withIdentifier: "transportCell", for: indexPath)

    self.tableView.rowHeight = 100



    //var a = Array(words[indexPath.row])

    //a.shuffle()

    //var shuffledWord = String(a)


    //shuffledWord = shuffledWord.lowercased()

    let sampleTextField =  UITextField(frame: CGRect(x:60, y: 30, width: 150, height: 40))
    sampleTextField.placeholder = "Enter text here"
    sampleTextField.font = UIFont.systemFont(ofSize: 15)
    sampleTextField.borderStyle = UITextBorderStyle.roundedRect
    sampleTextField.autocorrectionType = UITextAutocorrectionType.no
    sampleTextField.keyboardType = UIKeyboardType.default
    sampleTextField.returnKeyType = UIReturnKeyType.done
    sampleTextField.clearButtonMode = UITextFieldViewMode.whileEditing;
    sampleTextField.contentVerticalAlignment = UIControlContentVerticalAlignment.center
    sampleTextField.delegate = self as? UITextFieldDelegate
    var userEntry = sampleTextField.text
    sampleTextField.tag = indexPath.item // You will access the text field with this value
    cell.addSubview(sampleTextField)


    //cell.textLabel?.text = shuffledWord

    //var imageName = UIImage(named: words[indexPath.row])
    //cell.imageView?.image = imageName

    return cell
}

Answer 1:

更改cell.addSubview(sampleTextField)cell.contentView.addSubview(sampleTextField)

请参考https://developer.apple.com/documentation/uikit/uitableviewcell/1623229-contentview有关细节contentView



Answer 2:

可能有几个原因文本框是不可编辑的。

  1. 检查您是否已经使用了UITextFieldDelegate并设置文本框的委托自我即textfield.delegate =自

  2. 当您添加子视图细胞确保你将它添加到单元格的内容视图。 例如cell.contentView.addSubview(文本框)

  3. 确保有在文本框的顶部没有其他看法。

  4. 如果您已经实现:

FUNC textFieldShouldBeginEditing(_文本框:的UITextField) - >布尔那么它应该返回true,否则键盘将不会出现,你将无法编辑文本字段。

  1. 检查文本字段启用两个视图迅速文件和故事板。

6.Make确保正确的连接在您已声明文本框您的视图控制器在你的故事板文本字段或XIB文件和文本框@IBOutlet之间进行。

  1. 请检查你是不是辞职键盘或endEditing设置为true的文本框的textFieldShouldBeginEditing,shouldChangeCharactersIn和textFieldShouldBeginEditing代表。

我希望这可以帮助你!!



Answer 3:

据我,

  1. 你需要在实现代码如下小区选择设置sampleTextField的优先级。 每当你尝试选择sampleTextField进行编辑,tableview中的didselect功能越来越调用。 通过把断点didselect功能检查。 如果发生这种情况,你需要设置优先级。
  2. 此外,检查,如果你没有在键盘的代表功能textFieldShouldEndEditing辞职键盘。
  3. sampleTextField.isUserInteractionEnabled =真
  4. 此外,而不是直接对cell.contentView添加sampleTextField细胞。

一次,你可以编辑,你可以直接得到从文本字段中的数据由sampleTextField.text存放

希望,这将是有效的。 如果仍然发现问题,随时问。



文章来源: UITextField not editable and not showing keyboard