2014-10-31 31 views
0

根據NSArray的計數,我在我的視圖中創建UITextField從動態創建的UITextField中訪問文本值。 iOS

我想知道如何根據我的NSArrayUITextField的標記訪問文本值。

因此,我將以下UITextField添加到我的視圖中後,我將如何編寫代碼以分別檢索myTextfield0,myTextfield1和myTextfield2的.text值?

例子:

NSString *textFeildTextString = [NSString stringWithFormat:@"%@",myTextfield1.text]; 

實際代碼:

self.textFieldArray = [NSArray arrayWithObjects:@"one", @"two", @"three",nil]; 

NSMutableDictionary *myDict = [NSMutableDictionary dictionary]; 
for (int i=0; i<[self.textFieldArray count]; i++) { 

    UIView *spacerView1 = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 10, 10)]; 
    UITextField *myTextField = [[UITextField alloc]initWithFrame:CGRectMake(20, 60*i+150, 280, 45)]; 
    myTextField.borderStyle = UITextBorderStyleNone; 
    myTextField.font = [UIFont systemFontOfSize:14]; 
    myTextField.returnKeyType = UIReturnKeyDefault; 
    myTextField.placeholder = NSLocalizedString(@"Answer", nil); 
    myTextField.inputAccessoryView = [super createInputToolbar]; 
    myTextField.background = [UIImage imageNamed:@"TextFieldBg"]; 
    myTextField.textColor = [UIColor appTextColorGrey]; 
    [myTextField setLeftView: spacerView1]; 
    myTextField.leftViewMode = UITextFieldViewModeAlways; 
    myTextField.delegate = self; 
    myTextField.tag = 200+i; 
    [myDict setObject:myTextField forKey:[NSString stringWithFormat:@"myTextfield%d", i]]; 
    [self.view addSubview:myTextField]; 
} 

NSLog(@"Dict: %@",myDict); 

我UITexfields的NSLog的

2014-10-31 11:58:32.715 [51992:13536821] Dict: { 
myTextfield0 = "<UITextField: 0x7faea14f8430; frame = (20 150; 280 45); text = ''; clipsToBounds = YES; opaque = NO; tag = 200; layer = <CALayer: 0x7faea14f82d0>>"; 
myTextfield1 = "<UITextField: 0x7faea14fae70; frame = (20 210; 280 45); text = ''; clipsToBounds = YES; opaque = NO; tag = 201; layer = <CALayer: 0x7faea14faca0>>"; 
myTextfield2 = "<UITextField: 0x7faea16dce30; frame = (20 270; 280 45); text = ''; clipsToBounds = YES; opaque = NO; tag = 202; layer = <CALayer: 0x7faea16d19c0>>"; 

}

+0

您正在使用字典,而不是數組,這是一個好方法。 – trojanfoe 2014-10-31 10:18:45

+0

您可以通過myDict枚舉textField並獲取該值。這應該更簡單。對.. – GenieWanted 2014-10-31 10:22:46

+0

我已經在這裏回答..可能對某人有幫助。 http://stackoverflow.com/questions/14958613/unable-to-add-text-from-uitextfield-to-an-array/31469632#31469632 – 2015-07-17 06:34:36

回答

2
for (int i=0; i<[self.textFieldArray count]; i++) { 
    UITextField *txt = (UITextField *)[myDict objectForKey:[NSString stringWithFormat:@"myTextfield%d", i]]; 
    NSLog(@"Text %@",txt.text); 
} 
0

您可以通過他們的標籤訪問他們要麼:

UITextField *textField= (UITextField *)[self.view viewWithTag:200]; // Your first text field (201 your second etc..) 
NSString *text = textField.text; 

或通過你的字典裏直接訪問它們,你已經知道他們中的每一個關鍵:

UITextField *textField = (UITextField *)[myDict objectForKey:@"myTextField0"]; 

注意,爲了使字典呆在身邊的聲明強烈屬性成員的類並將其分配給創建的本地詞典(否則會被ARC丟失),所以在方法結束時,你會碰到這樣的:

self.myDict = myDict;