[英]How to get text from dynamically created UITextField without touching or tapping the text field (disabled user interaction)?
在我的應用程序中,我基於服務器響應在for循環中動態創建了文本字段,我設計了每一行有五個文本字段。 在這里,我將textfield1值和textfield2值相乘,然后顯示在textfield4中,然后將textfield1和textfield3乘以然后在textfield5中顯示,因此在這里,我基於占位符文本禁用了textfield4和textfield5的用戶交互,因為我只想顯示該文本字段的值,並設置不可編輯的字段。
在這里,我附上了此功能的空白字段屏幕截圖:
在這里,我在填寫了一些值后附上了屏幕截圖:
在這里我的問題是由於禁用用戶交互而無法獲取textfield4和textfield5值。 如果啟用用戶交互功能,則可以在textFieldShouldEndEditing中獲得兩個文本值。
如何獲取textfield4和textfield5的值?
您可以為textfield
設置標簽,並使用該標簽獲取textfield
。 請參考以下示例代碼。
if let txtField = self.view.viewWithTag(123) as? UITextField {
print("txtField.text")
}
對我來說,最簡單的解決方案是擁有一個var,您同時設置textfield4和5文本時使用計算的textfields值進行設置。 如果您希望獲得通知,則可以為其值添加觀察者。
更好的方法是將所有內容布置在由一組對象填充的UITableView
內,我們將其命名為Item
。 每個Item
都可以具有屬性,例如name
, quantity
, squareFootPerUnit
, estCost
, totalSquareFoot
和totalCost
。
然后,我將創建一個具有三個可以編輯的UITextFields( quantity
, estCost
, squareFootPerUnit
)和三個標簽( name
, totalSquareFoot
和totalCost
)的totalCost
。 使您的UITableViewCell
符合UITextFieldDelegate
以捕獲來自用戶的輸入。
在tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath)
,使用Item
對象中的數據填充UITableViewCells
。 從UITextFields
捕獲了quantity
, estCost
, squareFootPerUnit
數據后,進行計算並將答案分配給Item
對象中的totalSquareFoot
和totalCost
屬性,然后重新加載表格。
有多種方法可以將計算所得的值分配給Item
對象。 我通常使用的方法是將一個閉包(Swift)/塊(Objective-C)作為UITableViewCell
上的一個屬性,然后在計算完成后立即調用它。 將計算出的答案作為參數傳遞。
UITableView的優點
Item
數據,則無需處理任何復雜的x和y坐標定位。 Item
數據。 tag
對象或保留tag
名稱。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.