如何在代码中直接用内容填充UIPickerView



我该怎么做?我想用EURO, USD, POUND等值填充它,并在点击相应行时将值粘贴到文本字段中。

- (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;
}
-(void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component
{
     myTextField.text= [PickerArray objectAtIndex:row];
}

你应该实现在你的委托方法-(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 @"";
}

在委托方法中编写代码

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

{返回字符串;}

这样的数组添加@"一",@"两个"@"三"@"四"

正如其他人已经写过的那样,你必须添加上面提到的委托方法来用数组中的项填充你的PickerView。要将值写入文本字段,有两种方法。你可以写一个pickerView didSelectRow: delegate方法像这样:

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

最新更新