UIPickerview на textField нажмите - PullRequest
2 голосов
/ 25 апреля 2011

У меня есть текстовое поле в UItableview.Пользователь нажимает на текстовое поле, и я хочу, чтобы UIpickerview всплывал с данными из NSArray.Я пытался реализовать это, но приложение вылетает.Пожалуйста, найдите мой код ниже.

- (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 Ответ

1 голос
/ 05 августа 2012

Я использовал его для приложения несколько месяцев назад:

Настройка IBAction и создание там UIPickerview:

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

И установить параметры выбора:

(с помощью textFieldNumber Вы можете установить для каждого средства выбора для отдельного 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]];
...