2011-04-25 56 views
2

我在UItableview中有一个文本框。用户点击文本字段,我想要一个UIpickerview从NSArray中弹出数据。我试图实现这个,但应用程序崩溃。 请在下面找到我的代码。对textField的UIPickerview点击

- (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]; 
} 

请让我知道我要去哪里错了。

感谢

回答

1

我就在几个月前用来为应用程序:

建立一个IBAction为,然后创建UIPickerview有:

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

,并设置选择器的参数:

(带有textFieldNumber可以将每个pickerView设置为不同的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]];