swift - 如何区分自定义单元格中的两个文本字段?
问题描述
我在表格视图的自定义单元格中有两个文本字段(故事标题和作者),并希望通过 textFieldDidEndEditing 方法编辑和保存这些字段中的数据。如何区分方法中的两个字段?
我目前的代码如下:
func textFieldDidEndEditing(_ textField: UITextField) {
let touchPosition:CGPoint = textField.convert(CGPoint.zero, to:self.storiesTableView)
let indexPath = self.storiesTableView.indexPathForRow(at: touchPosition)
let storyForEdit = self.stories?[indexPath!.row]
var editedTitleText = ""
let cell = tableView(storiesTableView, cellForRowAt: indexPath!) as! StoryCell
let storyTitleField = cell.storyTitleField
if textField.text?.isEmpty ?? true {
deleteTitle(at: storyForEdit!)
} else {
editedTitleText = textField.text ?? ""
do {
try self.realm.write {
storyForEdit!.title = editedTitleText
}
} catch {
print("Error editing story \(error)")
}
self.storiesTableView.reloadData()
}
}
我有 storyCell.swift 中两个字段的参考渠道:
class StoryCell: UITableViewCell {
@IBOutlet weak var storyTitleField: UITextField!
@IBOutlet weak var authorField: UITextField!
....}
但是,当我尝试使用代码区分这两个字段时,例如(此处建议:iphone:uitextfield,多个文本字段具有相同的委托?):
if textField == storyTitleField {
print("Here we are in storyTitle field")
}
什么都没有发生 - 没有数据被持久化。但是,如果我只使用通用文本字段,那么我无法区分标题和作者文本字段。感谢您对此提出任何建议。
解决方案
你可以试试这个
override func viewDidLoad() {
super.viewDidLoad()
textfield1.delegate = self
textfield1.tag = 11
textfield2.delegate = self
textfield2.tag = 22
textfield3.delegate = self
textfield3.tag = 33
}
func textFieldDidEndEditing(_ textField: UITextField) {
if textField.tag == 11
{
//your code here
}
if textField.tag == 22
{
//your code here
}
if textField.tag == 33
{
//your code here
}
}
推荐阅读
- javascript - ModelChoiceField javascript onChange 参数
- javascript - 计算小数点后的位数,包括零 javascript
- ios - Swift - 在 NavBar 和 TabBar 之间有一个“正在加载”的 ViewController,而 TableView 加载其内容
- sas - 创建决策树模型
- firebase - this.props.route.params 返回值未定义
- windows - 如何在 Windows 10 上实现意图(?)?
- vue.js - 如何为 v-combobox 添加 v-tooltip?问题
- javascript - 为地理位置添加数据集
- reactjs - 如何在打字稿中使用 react-to-print
- r - 使用 dplyr 在组之间插入虚拟多 X 行?