2013-09-26 25 views
0

我是iOS開發新手。 我想根據條件動態創建UITextFields。條件是,如果我開始在第一個UITextField上打字,它將在底部創建一個更多的UITextField,並在我開始在第二個上打字時創建第三個UITextField。 同樣我想刪除底部的文本,如果上面的UITextField中沒有文本。 任何幫助將不勝感激...在UITextField上鍵入時添加更多UITextField

回答

1

試試這個

步驟:1個decleare全球

int tagCounter=1; 

步驟這個tagCounter變量:2設置你的第一個的UITextField標籤和代表

[MyFirstTextField setTag:tagCounter]; 
[MyFirstTextField setDelegate:self]; 
tagCounter+=1; 

步:下面3寫兩種方法來創建新文本字段並刪除文本字段

-(void)CreateNewTextField:(float)FromTop withTag:(int)Tag 
{ 
    UITextField *NewTextField=[[UITextField alloc] initWithFrame:CGRectMake(0.0f, FromTop, 100.0f, 40.0f)]; 
    [NewTextField setDelegate:self]; 
    [NewTextField setTag:Tag]; 
    [[self view] addSubview:NewTextField]; 
} 

-(void)RemoveTextField:(int)Tag 
{ 
    for(UIView *sub in [[self view] subviews]) 
    { 
     if([sub isKindOfClass:[UITextField class]]) 
     { 
      if([sub tag]>=Tag) 
      { 
       [sub removeFromSuperview]; 
      } 
     } 
    } 
} 

步驟:4使用文本框的委託方法textFieldDidEndEditing創造新的文本框和文本框刪除

-(void)textFieldDidEndEditing:(UITextField *)textField 
{ 
    if([[textField text] isEqualToString:@""]) 
    { 
     int CurrentTag=[textField tag]; 
     [self RemoveTextField:CurrentTag+1]; 
    } 
    else 
    { 
     CGRect CurrentTextFieldFrame=[textField frame]; 
     [self CreateNewTextField:CurrentTextFieldFrame.origin.y+CurrentTextFieldFrame.size.height+20.0f withTag:tagCounter]; 
     tagCounter+=1; 
    } 
} 
+0

非常感謝你我很長一段時間在這個結構.... – Atul

0

Here是如何從代碼創建UITextField的教程。

您應該實現它的方法是,添加第一個文本字段,將其設置爲self,並在textFieldDidBeginEditing:方法中創建另一個文本字段,將其設置爲委託並在其旁邊創建一個按鈕。如果你想刪除它,我會建議爲UITextField和它的相應的刪除UIButton添加相同的標籤,然後當點擊一個按鈕時,從超級視圖中刪除具有該標籤的所有視圖。

我建議一步亂投醫步:

  • 從代碼
  • 從代碼
  • 創建UIButton的標籤設置爲UIView的(兩者的UIButton,同時也是UITextField的父類)創建的UITextField。
  • 實現UITextField委託方法。
  • 將自定義方法添加到UIButton(刪除方法)。
  • 根據標籤從視圖中移除UIView。
+0

@Zsolt:我想刪除的下一個的UITextField噹噹前是空的不是通過點擊按鈕。 – Atul