2011-04-25 5 views
2

J'ai un champ de texte dans un UItableview. L'utilisateur clique sur le champ de texte et je veux qu'un UIpickerview fasse une popup avec les données de NSArray. J'ai essayé de l'implémenter mais l'application plante. Veuillez trouver ci-dessous mon code.UIPclassement sur textField cliquez sur

- (NSString*)pickerView:(UIPickerView*)pv titleForRow:(NSInteger)row forComponent:(NSInteger)component 
{ 
    return [policyarraycount objectAtIndex:row]; 
} 

- (NSInteger)numberOfComponentsInPickerView:(UIPickerView*)pv 
{ 
    return 1; 
} 
- (NSInteger)pickerView:(UIPickerView*)pv numberOfRowsInComponent:(NSInteger)component 
{ 
    return [policyarraycount count]; 
} 

- (void)pickerView:(UIPickerView *)pv didSelectRow:(NSInteger)row inComponent:(NSInteger)component { 

    txtPolicy.text = (NSString *)[policyarraycount objectAtIndex:row]; 
} 

S'il vous plaît laissez-moi savoir où je me trompe.

Merci

Répondre

1

je l'ai utilisé pour une application il y a quelques mois:

Mise en place d'un IBAction puis créez la UIPickerView là:

UIPickerView *thingPicker = [[UIPickerView alloc] initWithFrame:CGRectZero]; 
[UIPickerView setAnimationDelegate:self]; 
thingPicker.delegate = self; 
thingPicker.dataSource = self; 
[thingPicker setShowsSelectionIndicator:YES]; 
textField.inputView = thingPicker; 

et définissez les paramètres du sélecteur :

(avec textFieldNumber Vous pouvez définir chaque pickerView sur un autre textField)

- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)windPicker { 

return 1; //Here if textFieldBOOL == # can also be used but I only use 1 component. 
} 

- (NSInteger)pickerView:(UIPickerView *)thingPicker numberOfRowsInComponent:(NSInteger)component { 
if (textFieldNumber == 0) { 
    return [fromAnArray count]; 

- (NSString *)pickerView:(UIPickerView *)thingPicker titleForRow:(NSInteger)row forComponent:(NSInteger)component { 
if (textFieldNumber == 0){ 
    return [fromAnArray objectAtIndex:row]; 
} 

- (void)pickerView:(UIPickerView *)thingPicker didSelectRow:(NSInteger)row inComponent:(NSInteger)component { 
if (textFieldNumber == 0) { 
[textField setText:(NSString *)[fromAnArray objectAtIndex:row]];