2011-04-12 4 views
1

Могу ли я использовать один UIPickerView со многими UITextFields, или мне нужно создать много pickerviews, по одному для каждого UITextField (у меня есть все UITextFields в одном представлении)?Один UIPickerView с несколькими текстовыми полями

+0

если у вас есть ответ, то щелкните правой кнопкой мыши, указав ответ – dks1725

+0

нормально, но я не знаю, как это сделать. – izan

+0

как принять ответы, пожалуйста? – izan

ответ

0

Я думаю, что одного представления Picker с несколькими текстовыми полями будет достаточно. Вы можете легко пометить текстовые поля и обработать их в соответствии с вашими потребностями.

Multiple sources for UIPickerView on textfield editing

http://www.iphonedevsdk.com/forum/iphone-sdk-tutorials/12952-tutorial-uipickerview-basics-basic-tip-calculator.html

Поможет вам начать

+0

Спасибо за ваш ответ. как я могу принять ваш ответ, пожалуйста? – izan

+0

Просто нажмите на отметку слева от ответа, чтобы превратить ее в зеленый – visakh7

2

Пожалуйста объявляю textFieldName глобально:

NSString * textFieldName; 

Распределение в didLoad:

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    [pickerView setHidden:YES]; 

    textFieldName=[NSString alloc]init]; 

    pickerArray1 = [[NSMutableArray alloc] initWithObjects:@"apple", @"mango", @"banana", nil]; 

    pickerArray2 = [[NSMutableArray alloc] initWithObjects:@"black", @"white", @"green", nil]; 
} 

Пожалуйста, установите текстовое имя поля в textFieldName строке:

-(void)textFieldDidBeginEditing:(UITextField *)textField{ 
    [pickerView setHidden:YES]; 
    if (textField1.editing == YES) 
    { 
     textFieldName=textField1; 
     [pickerView setHidden:NO]; 
    } 
    else 
     if (textField2.editing == YES) 
     { 
      textFieldName=textField2; 
      [pickerView setHidden:NO]; 
     } 
    } 

Затем используйте эту textFieldName, чтобы проверить в методе pickerview:

- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView; 
{ 
    return 1; 
} 

- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component; 
{ 
    if (textFieldName isEqualToString:@"textField1") 
    { 
     return [pickerArray1 count]; 
    } 
    else 
     if (textFieldName isEqualToString:@"textField2") 
     { 
      return [pickerArray2 count]; 
     } 
    } 

- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component; 
{ 
    if (textFieldName isEqualToString:@"textField1") 
    { 
     return [pickerArray1 objectAtIndex:row]; 
    } 
    else 
     if (textFieldName isEqualToString:@"textField2") 
     { 
      return [pickerArray2 objectAtIndex:row]; 
     } 
    } 

- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component 
{ 
    if (textFieldName isEqualToString:@"textField1") 
    { 
     textField1.text= [pickerArray1 addObjectAtIndex:row]; 
    } 
    else 
     if (textFieldName isEqualToString:@"textField2") 
     { 
      textField2.text= [pickerArray2 addObjectAtIndex:row]; 
     } 
     [pickerView setHidden:YES]; 
    } 
4
-(void)textFieldDidBeginEditing:(UITextField *)textField 
{ 
    if (textField1.editing == YES) 
    { 
     textFieldName=textField1; 
    } 
    else 
     if (textField2.editing == YES) 
     { 
      textFieldName=textField2; 
     } 
} 
3

Используйте вид списка массива, а затем получить позицию ,

Смежные вопросы