问题描述
我有一个使用 tableview 的搜索表单.今天更新 Xcode 12 后,UISwitch、UITextField、UISlider 在嵌套在 UITableViewCell 中时不再工作.是否有我需要设置的已更改属性才能使其再次工作?
I have a search form that uses a tableview. After updating Xcode 12 today the UISwitch, UITextField, UISlider no longer work when nested inside a UITableViewCell. Is there a property that has changed that I need to set to make this work again?
为了确保这不仅仅是我的项目,我创建了一个新项目并在其中放置了一个 UITextField,但它也不起作用.
To be sure it wasn't just my project, I created a new project and nestled a UITextField inside of it and it doesn't work either.
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = UITableViewCell()
let textField = UITextField(frame: CGRect(x: 5, y: 5, width: 400.0, height: 25.0))
textField.delegate = self
textField.backgroundColor = .blue
cell.addSubview(textField)
return cell
}
override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
print("this will get called even when selecting the UITextField")
}
func textFieldDidBeginEditing(_ textField: UITextField) {
print("this is never called")
}
推荐答案
你的代码总是错的:
cell.addSubview(textField)
您必须永远向单元格添加子视图.将子视图添加到单元格的 contentView
.
You must never add a subview to a cell. Add the subview to the cell's contentView
.
这篇关于自从更新到 xcode 12 以来,我无法在 UITableViewCell 中放置任何 UIControl的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!