我尝试根据显示的单元格类型,将表视图的单元格配置为具有不同的键盘配置。
在我的func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell
方法中,我有以下代码来适当地检查键盘上UILabel.text
的值:
if cell.entityLabel.text == "Home" || cell.entityLabel.text == "Mobile" {
cell.entityTextField.keyboardType = UIKeyboardType.namePhonePad
}
然而,这些细胞仍然显示相同的"默认"键盘。
知道我可能缺少什么吗?
编辑:我忘记了重要的事情!这些UITableView
单元格实际上是在单独的类EditTableViewCell.swift
中创建的。所以,我修改了awakeFromNib()
方法,如下所示(但仍然得到相同的结果):
覆盖func awakeFromNib(){ super.awakeFromNib() //初始化代码
if entityLabel.text == "Home" || entityLabel.text == "Mobile" {
entityTextField.keyboardType = UIKeyboardType.namePhonePad
entityTextField.reloadInputViews()
}
else {
entityTextField.keyboardType = UIKeyboardType.default
entityTextField.reloadInputViews()
}
}
答案 0 :(得分:1)
在表达式中添加else语句以获得正确的重用逻辑,例如:
if cell.entityLabel.text == "Home" || cell.entityLabel.text == "Mobile" {
cell.entityTextField.keyboardType = UIKeyboardType.namePhonePad
} else {
cell.entityTextField.keyboardType = UIKeyboardType.emailAddress
}