如何识别在 UICollectionView 单元格中修改了哪个 UITextField?
How to identify which UITextField is being modified inside a UICollectionView Cell?
我在 UICollectionViewCell 中有一些 UITextFields,我想知道其中哪些正在被修改。每个元素都是以编程方式制作的。 UICollectionViewCell 有一个 swift class。该单元格在 UICollectionView 中重复了大约 5 次,所以我还需要知道 UITextField 在哪个单元格中。
有什么建议吗?
首先,在 cellForItemAt
中,您需要为将显示在该单元格中的 textView
分配一个标签。使用单元格的行号最容易识别它。例如:
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
cell.textView.tag = indexPath.row
}
接下来,在 textViewDidChange
中放入一个与正在修改的 textView 的标签相对应的 switch 语句。在每种情况下,您都可以执行任何需要知道正在修改的 textView 的代码。例如:
func textViewDidChange(_ textView: UITextView) {
switch textView.tag {
case 0:
// Code for first text view
break
case 1:
// Code for second text view
break
case 2:
// Code for third text view
break
case 3:
// Code for fourth text view
break
default:
// Code for fifth text view
break
}
}
我在 UICollectionViewCell 中有一些 UITextFields,我想知道其中哪些正在被修改。每个元素都是以编程方式制作的。 UICollectionViewCell 有一个 swift class。该单元格在 UICollectionView 中重复了大约 5 次,所以我还需要知道 UITextField 在哪个单元格中。
有什么建议吗?
首先,在 cellForItemAt
中,您需要为将显示在该单元格中的 textView
分配一个标签。使用单元格的行号最容易识别它。例如:
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
cell.textView.tag = indexPath.row
}
接下来,在 textViewDidChange
中放入一个与正在修改的 textView 的标签相对应的 switch 语句。在每种情况下,您都可以执行任何需要知道正在修改的 textView 的代码。例如:
func textViewDidChange(_ textView: UITextView) {
switch textView.tag {
case 0:
// Code for first text view
break
case 1:
// Code for second text view
break
case 2:
// Code for third text view
break
case 3:
// Code for fourth text view
break
default:
// Code for fifth text view
break
}
}