我在單個UITableviewCell中有多個UITextFields。我知道我們可以使用標籤來識別UITableViewCell的子視圖。但在我的情況下,我在單個單元格中有多個文本字段。在單個UITableViewCell中管理多個文本文件
如何提供標籤以確定哪個文本框被點擊?
任何幫助將是appriciable。
我在單個UITableviewCell中有多個UITextFields。我知道我們可以使用標籤來識別UITableViewCell的子視圖。但在我的情況下,我在單個單元格中有多個文本字段。在單個UITableViewCell中管理多個文本文件
如何提供標籤以確定哪個文本框被點擊?
任何幫助將是appriciable。
當你在大街的表格單元格多textfeilds,給標籤給每個文本框在你的cellForRowAtIndex
方法。然後當你點擊文本字段時,文本字段委託將被擊中。例如,當您點擊文本框時,textFieldShouldBeginEditing
會被點擊。
或者,你甚至可以添加觀察員的文本框,然後你可以簡單地驗證該文本框被竊聽。
如果考慮委託方法:
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField{
if(textfield.tag==1){
//you tapped textfield 1
}
}
如果我理解正確的,因爲你在每個單元有多於一個文本框,只需使用該行的標籤仍然是無法區分哪個文本框它之間來自該特定行。
我通常在這些場景中做的是在標籤中編碼2個值。
例如,你可以將它保存這樣的:
textField.tag = indexPath.row * 1000 + TEXTFIELD_INDEX
,然後在該文本框的委託方法,你能找回它想:
NSInteger textFieldIndex = textField.tag % 1000;
NSInteger row = textField.tag/1000;
文本域的索引將被存儲爲標籤上剩下的1000個,行本身將被存儲爲數千個。
注意:這樣做有一個隱含的限制,其中每個單元格中最多隻能有1000個textField,並且大約有2000000個單元格。假設標籤是一個32位整數。但我覺得這很合理:)
您可以在故事板或筆尖文件中設置標籤。
選擇文本框,選擇右側的屬性選項卡,在視圖部分修改標籤。每UITextfields
標籤,那麼你就可以比較在行= 1,標記= 1等 –
@AnoopVaidya:感謝您的回答,但我有一個UITableViewCell中多個文本框。 – iPhone
是的,爲什麼你不能爲每個標籤/標識符? –