Как установить выбор PickerView в UITextFIeld.text с помощью тегов? - PullRequest
0 голосов
/ 31 января 2012

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

Вот код для создания текстового поля с помощью окна выбора.

    else if([input.controlTypeName compare:@"RadioButton"] == NSOrderedSame){
        UITextField *pickerViewtext = [[UITextField alloc] initWithFrame:CGRectMake(x, y, 280, 31)];          
        pickerViewtext.borderStyle = UITextBorderStyleRoundedRect;
        pickerViewtext.textColor = [UIColor blackColor]; //text color
        pickerViewtext.font = [UIFont systemFontOfSize:17.0];  //font size
        pickerViewtext.placeholder = placeholder;   //place holder
        pickerViewtext.backgroundColor = [UIColor whiteColor]; //background color
        pickerViewtext.autocorrectionType = UITextAutocorrectionTypeNo; // no auto correction support
        pickerViewtext.tag = i;  //tag the textfields for future data collection
        pickerViewtext.keyboardType = UIKeyboardTypeDefault;  // type of the keyboard
        pickerViewtext.returnKeyType = UIReturnKeyDone;  // type of the return key
        pickerViewtext.clearButtonMode = UITextFieldViewModeWhileEditing;   // has a clear 'x' button to the right     
        pickerViewtext.delegate = self; // let us be the delegate so we know when the keyboard's "Done" button is pressed

        UIPickerView *radioPicker = [[UIPickerView alloc] initWithFrame:CGRectZero];
        radioPicker.delegate = self;
        radioPicker.showsSelectionIndicator = YES;
        radioPicker.tag = i;   
        radioTag = i;

        [radioSize addObject:[NSNumber numberWithInt:5]];
        [radioList addObject:input.sourceText];     


        pickerViewtext.inputView = radioPicker;


        [inputsView addSubview:pickerViewtext];
        y = y + 50;
   }

Я в основном в растерянности из-за того, что положить в мой

- (void)pickerView:(UIPickerView *)pickerView didSelectRow: (NSInteger)row inComponent:    (NSInteger)component {
// Handle the selection
  }

метод делегата. Я думал об использовании переменной radioTag в качестве некоторой глобальной переменной. Но с возможностью использования нескольких текстовых полей, использующих представление выбора, это приведет только к тому, что все представления выбора будут ссылаться на одно и то же текстовое поле. И большинство примеров тегов, которые я обнаружил, кажется, не относятся к этому или слишком старые, и синтаксис изменился. Любая помощь будет великолепна.

Спасибо.

Ответы [ 2 ]

0 голосов
/ 29 апреля 2013

У меня есть приложение аналогичного типа, которое использует следующее, и это может указать вам правильное направление

NSString *aVal = [activities objectAtIndex:[_emailPicker selectedRowInComponent:0]];
a=[aVal intValue];
NSString *bVal = [activities objectAtIndex:[_emailPicker selectedRowInComponent:1]];
b=[bVal intValue];
NSString *cVal = [activities objectAtIndex:[_emailPicker selectedRowInComponent:2]];
c=[cVal intValue];

У него есть три компонента, вы можете просто использовать компонент: 0 или все, что вам нужно.Вторая часть каждого из них конвертируется в intValue [целочисленное значение], которое вам может не понадобиться.Другие могут.

Значения были помещены в mutableArray и «введены» в представление средства выбора, используя:

- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:   (NSInteger)component
{
    if (component == 0) {

        return [activities count];
    }
    else if (component == 1) {
        return [feelings count];
    }
    else if (component==2) {
        return [addresses count];
    }
    else return 0;
}

, где мои три массива были названы действиями, чувствами и адресами, а число - этоколичество записей в каждом массиве.Я надеюсь, что это приведет вас немного дальше.

0 голосов
/ 31 января 2012
UITextField *textField = (UITextField *)[inputsView viewWithTag:pickerView.tag];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...