【发布时间】:2016-12-10 03:00:59
【问题描述】:
我的 UItable 中的一个单元格中有一个 UItextfield,我希望从文本字段返回后可以执行几个步骤:
- 清除开头和结尾的空白(修剪空白)
- 辞去第一响应者(隐藏键盘)
- 设置单元格被选中
- 将字段的文本内容附加到 [String] 中
但到目前为止我只能执行其中的一部分,因为第 3 点在 TableViewCell 类中,但第 4 点在 TableViewController 中。 我试图为这两个类创建 UItextField 出口,但它不起作用 Text_NewName.delegate = self 或者我应该访问 UITableViewCell 类中的 [String] 吗?但是当我尝试将其作为子类时,迅速提示错误'从类中多重继承'
我相信我的知识一定有一些差距,使这些功能变得困难,如果有更简单的方法也可以让我知道。
代码如下:
class Namelist_ADDName_TVCell: UITableViewCell, UITextFieldDelegate {
override func awakeFromNib() {
super.awakeFromNib()
Text_NewName.delegate = self
}
@IBOutlet weak var Text_NewName: UITextField!
func textFieldShouldReturn(_ textField: UITextField) -> Bool {
textField.text = textField.text?.trimmingCharacters(in: .whitespaces)
textField.resignFirstResponder()
if textField.text != "" {
self.isSelected = true
return true
} else {
self.isSelected = false
return false
}
}
另一个快速文件:
class PickNameTVC: UITableViewController, UITextFieldDelegate {
var selectedlist : [String]?
func textFieldShouldReturn(_ theTextfield: UITextField) -> Bool {
if theTextfield.text != "" {
selectedlist?.append(theTextfield.text!)
}
return true
}
}
【问题讨论】:
-
您需要选择是让 UITableViewController 子类还是 UITableViewCell 子类作为文本字段的委托。在这种情况下,将 UITableViewController 用作文本字段的委托是有意义的,这样它就可以轻松完成所有四项任务。
标签: ios swift uitableview uitextfielddelegate