iphone - 如何处理动态 UITableView 中对 UITextFields 的引用 (iPhone)

标签 iphone ios uitextfield uitableview

我有一个 UITableView,它被分成用户定义数量的 部分。在每个 部分 中,始终有 2 个 。这两个中的每一行都包含一个用户可以编辑的UITextField

我需要的是一种能够在以后访问这些 UITextFields 中的数据的方法。我希望这将是一个简单的问题,但它却让我很伤心。

到目前为止,我尝试了两种方法:

尝试 1

我创建了两个 NSMutableArrays,其中我将 UITextField 对象添加到索引 i(对应于它来自的 section)。然后我尝试通过遍历数组来访问这些值。这没有用,因为 UITextFields 一直被擦干净。每次我向下滚动表格时,UITextField 都在 View 之外,当我返回时,它的内容已被清除干净。

尝试 2

我试图掌握 UITableView 中的 sections 的数量(这没问题)。然后我想遍历 UITableView 的每个 section,记录每个 rows 中的值。这就是我陷入困境的地方,因为我不确定如何做到这一点,或者它是否可能。

如果这是一个天真的问题,我深表歉意,但我真的很挣扎,非常感谢任何建议。

最佳答案

请记住,文本字段会在您滚动时重复使用,因此您真的不想存储对它们的引用。

您要做的是捕获输入的信息。最简单的方法是在委托(delegate)中实现 textFieldDidEndEditing 协议(protocol)方法。

棘手的部分是找出文本字段在哪一行。最好的方法是创建一个 UITableViewCell 子类,它有一个 NSIndexPath 属性。然后,您可以在使用 tableview:willDisplayCell:forRowAtIndexPath: 配置单元格时进行设置。

然后,在 textFieldDidEndEditing 中,通过其父 View 访问 tableViewCell 的 indexPath 属性。即:

NSIndexPath indexPathOfParentCell = [(MyUITableViewCellSubclass *)self.superview indexPath]; 

这样做可以让您知道单元格的部分和行。

关于iphone - 如何处理动态 UITableView 中对 UITextFields 的引用 (iPhone),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10820750/

相关文章:

ios - 如何增加 .csv 中的行数

ios - 仅在 Objective-C 中具有底部边框的 UITextField

ios - 我如何解决 iPhone 4 5 6 6+ 中的图像自动调整大小问题

iphone - 我应该以编程方式在 init 或 ViewDidLoad 中添加 subview ,为什么?

ios - 背景图像垂直拉伸(stretch),但水平重复

iOS pdf在特定坐标处缩放

iphone - 编写自己的 UINavigationController?类似的功能,而不是子类化

iphone - 在单击按钮的 TableView 中更改数据-iphone

swift - SwiftUI-UITextField中的状态更改导致frameWidth不受控制地增长,并且忽略了边界/框架

iphone - 成为FirstResponder会减慢应用程序的速度