2011-04-25 3 views
2

UItableview에 텍스트 필드가 있습니다. 사용자가 텍스트 필드를 클릭하고 UIpickerview가 NSArray의 데이터로 팝업되도록합니다. 이 구현하려고하지만 응용 프로그램이 충돌합니다. 아래 코드를 찾으십시오.UIPickerview on textField

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