XCode: Как заполнить UIPickerView в коде непосредственно контентом? - PullRequest
0 голосов
/ 07 сентября 2011

Как мне это сделать? я хочу заполнить его значениями, такими как евро, доллары США, фунты и т. д., и вставить это значение в текстовое поле, когда я нажимаю на соответствующую строку.

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField { 
// Make a new view, or do what you want here
UIPickerView *picker = [[UIPickerView alloc] 
                        initWithFrame:CGRectMake(0, 244, 320, 270)];

[self.view addSubview:picker];


return NO;
}

Ответы [ 4 ]

3 голосов
/ 02 июля 2013
-(void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component
{
     myTextField.text= [PickerArray objectAtIndex:row];
}
2 голосов
/ 07 сентября 2011

Вы должны реализовать в своем делегате метод -(NSString*) pickerView:(UIPickerView*)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component, который будет возвращать заголовки @"EURO", @"USD", @"POUND", @"RUB" для ваших строк.

Например,

-(NSString*) pickerView:(UIPickerView*)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component
{
    switch(component)
    {
        case 0:
            return @"EURO";
        case 1:
            return @"USD";
        case 2:
            return @"POUND";
        case 3:
            return @"RUB";
    }
    return @"";
}
0 голосов
/ 07 сентября 2011

Как уже написали другие, вы должны добавить вышеупомянутый метод делегата, чтобы заполнить ваш PickerView элементами из массива. Для записи значения в текстовое поле вы можете сделать это двумя способами. Вы можете написать команду pickerView didSelectRow: метод делегата, например так:

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

{

myTextField.text= [myArray objectAtIndex:row];

}

Это будет обновлять textField каждый раз, когда вы нажимаете на строку. Другой способ заключается в том, что вы извлекаете значение pickerView нажатием кнопки или другим действием. Аналогично

- (void)someAction:(id)sender
{

    NSInteger row = [myPicker selectedRowInComponent:0];
    myTextField.text = [myArray objectAtIndex:row];

}
0 голосов
/ 07 сентября 2011

написать код в методе вашего делегата

-(NSString*) pickerView:(UIPickerView*)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component

{ возвращаемая строка; }

В массив добавьте как @ "один", @ "два", @ "три", @ "четыре"

...