在我的应用程序中,我基于服务器响应在for循环中动态创建了文本字段,我设计了每一行有五个文本字段。在这里,我将textfield1值和textfield2值相乘,然后显示在textfield4中,然后将textfield1和textfield3乘以然后在textfield5中显示,因此在这里,我基于占位符文本禁用了textfield4和textfield5的用户交互,因为我只想显示该文本字段的值,并设置不可编辑的字段。
在这里,我附上了此功能的空白字段屏幕截图:
在填写一些值后,我在此处附上了屏幕截图:
在这里,我的问题由于禁用用户交互而无法获取textfield4和textfield5值。如果启用用户交互功能,则可以在 textFieldShouldEndEditing 中获得两个文本字段值。
如何获取textfield4和textfield5的值?
答案 0 :(得分:0)
您可以为textfield
设置标签,并使用该标签获取textfield
。请参考下面的示例代码。
if let txtField = self.view.viewWithTag(123) as? UITextField {
print("txtField.text")
}
答案 1 :(得分:0)
对我来说,最简单的解决方案是拥有一个var,您可以在设置textfield4和5文本的同时使用计算出的textfields值进行设置。如果您希望收到通知,则可以为其值添加观察者。
答案 2 :(得分:0)
一种更好的方法是将所有内容放置在UITableView
中,该对象由一组对象填充,我们将其命名为Item
。每个Item
可以具有诸如name
,quantity
,squareFootPerUnit
,estCost
,totalSquareFoot
和totalCost
之类的属性。
然后,我将创建一个具有三个UITextField(quantity
,estCost
,squareFootPerUnit
)和三个标签(name
,{{1})的UITableViewCell }和totalSquareFoot
)。使您的totalCost
符合UITableViewCell
,以捕获用户的输入。
在UITextFieldDelegate
中,用tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath)
对象中的数据填充UITableViewCells
。从Item
捕获quantity
,estCost
,squareFootPerUnit
数据后,进行计算并将答案分配给UITextFields
和{{1} } totalSquareFoot
对象中的}属性,然后重新加载表格。
有多种方法可以将您的计算值分配给totalCost
对象。我通常使用的方式是将Item
上的一个闭包(Swift)/块(Objective-C)作为属性,然后在计算完成后立即调用它。将计算出的答案作为参数传递。
UITableView的优势
Item
数据,则无需处理任何复杂的x和y坐标定位。UITableViewCell
数据。Item
对象或保留Item
名称。