配置UITableView单元格文本字段键盘类型

时间:2017-07-15 13:21:56

标签: ios swift uitableview uikeyboardtype

我尝试根据显示的单元格类型,将表视图的单元格配置为具有不同的键盘配置。

在我的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()
}

}

1 个答案:

答案 0 :(得分:1)

在表达式中添加else语句以获得正确的重用逻辑,例如:

if cell.entityLabel.text == "Home" || cell.entityLabel.text == "Mobile" {
    cell.entityTextField.keyboardType = UIKeyboardType.namePhonePad
} else {
    cell.entityTextField.keyboardType = UIKeyboardType.emailAddress
}