在 UItableView 中处理 UItextfield 的委托
Handling delegate of UItextfield in UItableView
我的 UItable 中的一个单元格中有一个 UItextfield,我希望在文本字段 return 之后可以执行几个步骤:
- 清除开头和结尾的空白(Trim 空格)
- 辞去第一响应者(隐藏键盘)
- 设置选中单元格
- 将字段的文本内容附加到 [String]
但到目前为止我只能执行其中的一部分,因为第 3 点在 TableViewCell class 而第 4 点在 TableViewController 中。
我已尝试将 UItextField 出口设置为 class,但它不起作用
Text_NewName.delegate = 自己
或者我应该访问 UITableViewCell class 中的 [String] 吗?但是当我尝试将其设置为subclass时,swift提示错误'Multiple inheritance from classes'
我相信我的知识一定存在一些差距,使这些功能变得困难,如果有更简单的方法也可以让我知道。
代码如下:
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
}
}
另一个 swift 文件:
class PickNameTVC: UITableViewController, UITextFieldDelegate {
var selectedlist : [String]?
func textFieldShouldReturn(_ theTextfield: UITextField) -> Bool {
if theTextfield.text != "" {
selectedlist?.append(theTextfield.text!)
}
return true
}
}
管理 PickNameTVC
上的所有内容。
创建单元格时设置 delegate
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell
方法将您的委托设置为 cell.textField.delegate = self
(其中 cell
是您在该方法中出队的单元格)。
我的 UItable 中的一个单元格中有一个 UItextfield,我希望在文本字段 return 之后可以执行几个步骤:
- 清除开头和结尾的空白(Trim 空格)
- 辞去第一响应者(隐藏键盘)
- 设置选中单元格
- 将字段的文本内容附加到 [String]
但到目前为止我只能执行其中的一部分,因为第 3 点在 TableViewCell class 而第 4 点在 TableViewController 中。 我已尝试将 UItextField 出口设置为 class,但它不起作用 Text_NewName.delegate = 自己 或者我应该访问 UITableViewCell class 中的 [String] 吗?但是当我尝试将其设置为subclass时,swift提示错误'Multiple inheritance from classes'
我相信我的知识一定存在一些差距,使这些功能变得困难,如果有更简单的方法也可以让我知道。
代码如下:
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
}
}
另一个 swift 文件:
class PickNameTVC: UITableViewController, UITextFieldDelegate {
var selectedlist : [String]?
func textFieldShouldReturn(_ theTextfield: UITextField) -> Bool {
if theTextfield.text != "" {
selectedlist?.append(theTextfield.text!)
}
return true
}
}
管理 PickNameTVC
上的所有内容。
创建单元格时设置 delegate
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell
方法将您的委托设置为 cell.textField.delegate = self
(其中 cell
是您在该方法中出队的单元格)。