2012-07-30 84 views
0

我想在一個循環中添加多個UITextFields。並在用戶與UITextFields交互時識別它們。所以請幫助我。如何在單個循環中添加多個textField?

感謝

目前我把單獨的UITextField,這樣

txt_FirstName=[[UITextField alloc]initWithFrame:CGRectMake(framex1, framey1, framex2, framey2)]; 
txt_FirstName.borderStyle = UITextBorderStyleRoundedRect; 
txt_FirstName.font = [UIFont systemFontOfSize:15]; 
txt_FirstName.placeholder = @"First Name"; 
txt_FirstName.autocorrectionType = UITextAutocorrectionTypeNo; 
txt_FirstName.keyboardType = UIKeyboardTypeDefault; 
txt_FirstName.returnKeyType = UIReturnKeyDone; 
txt_FirstName.clearButtonMode = UITextFieldViewModeWhileEditing; 
txt_FirstName.contentVerticalAlignment = UIControlContentVerticalAlignmentCenter;  
txt_FirstName.delegate = self; 
[frameView addSubview:txt_FirstName]; 
[txt_FirstName release]; 

framey1=framey1+50; 

txt_MiddleName=[[UITextField alloc]initWithFrame:CGRectMake(framex1, framey1, framex2, framey2)]; 
txt_MiddleName.borderStyle = UITextBorderStyleRoundedRect; 
txt_MiddleName.font = [UIFont systemFontOfSize:15]; 
txt_MiddleName.placeholder = @"Middle Name"; 
txt_MiddleName.autocorrectionType = UITextAutocorrectionTypeNo; 
txt_MiddleName.keyboardType = UIKeyboardTypeDefault; 
txt_MiddleName.returnKeyType = UIReturnKeyDone; 
txt_MiddleName.clearButtonMode = UITextFieldViewModeWhileEditing; 
txt_MiddleName.contentVerticalAlignment = UIControlContentVerticalAlignmentCenter;  
txt_MiddleName.delegate = self; 
[frameView addSubview:txt_MiddleName]; 
[txt_MiddleName release]; 
+1

我可以問你爲什麼不使用筆尖文件和IB? – tia 2012-07-30 05:08:52

+1

是啊,tia是正確的..請使用XIB文件,而不是代碼..這將是非常簡單的你.. – 2012-07-30 05:20:16

回答

5

請使用,但在你的.h文件中實現的UITextField委託。但你應該根據你的要求就像1姓,2中間名等

首先創建這樣的通用功能,改變你的佔位符,

-(void)setTextfieldStyle:(UITextField *)pTmpTextField 
{ 
     pTmpTextField.borderStyle = UITextBorderStyleRoundedRect; 
     pTmpTextField.font = [UIFont systemFontOfSize:15]; 
     pTmpTextField.placeholder = @"First Name"; 
     pTmpTextField.autocorrectionType = UITextAutocorrectionTypeNo; 
     pTmpTextField.keyboardType = UIKeyboardTypeDefault; 
     pTmpTextField.returnKeyType = UIReturnKeyDone; 
     pTmpTextField.clearButtonMode = UITextFieldViewModeWhileEditing; 
     pTmpTextField.contentVerticalAlignment = UIControlContentVerticalAlignmentCenter;  
     pTmpTextField.delegate = self; 
} 

,並使用此創建UITextFiled,

int y = 0; 
for(int i=0;i < 5;i++) 
{ 
    UITextField *txtTemp=[[UITextField alloc]initWithFrame:CGRectMake(0, y, 300, 31)]; 
    txtTemp.tag = i; 
    [self setTextfieldStyle:txtTemp]; 
    [self.view addSubview:txtTemp]; 
    [txtTemp release]; 
    y+=36; 
} 

這是的UITextField的委託方法,

- (void)textFieldDidBeginEditing:(UITextField *)textField 
{ 
    NSLog(@"%@",textField.text); 
} 

希望這對你的作品..

+1

感謝您的快速回復。我正在嘗試。 :) – 2012-07-30 04:58:18

0

如果你想設置了一堆在一個循環中的文本字段的屬性,你也可以這樣做:

NSMutableArray* allTextFields = [NSMutableArray array]; 

// create the textFields here, I'm assuming you need to keep individual 
// references to them. 
txt_FirstName=[[UITextField alloc]init]; 
pTmpTextField.placeholder = @"First Name"; 
[allTextFields addObject:txt_FirstName]; 

// now add the common style stuff and frame 
[allTextFields enumerateObjectsUsingBlock:^(UITextField* textField, NSUInteger idx, BOOL* stop) { 
    textField.frame = CGRectMake(framex1, framey1 + (50 * idx), framex2, framey2); 
    textField.borderStyle = UITextBorderStyleRoundedRect; 
    textField.font = [UIFont systemFontOfSize:15]; 
    textField.placeholder = @"First Name"; 
    textField.autocorrectionType = UITextAutocorrectionTypeNo; 
    textField.keyboardType = UIKeyboardTypeDefault; 
    textField.returnKeyType = UIReturnKeyDone; 
    textField.clearButtonMode = UITextFieldViewModeWhileEditing; 
    textField.contentVerticalAlignment = UIControlContentVerticalAlignmentCenter;  
    textField.delegate = self; 
}];