UIPicker noob问题 - 如果我点击选择器中的第一项,结果为空 - 所有其他项都没问题

phi*_*hil 2 iphone objective-c uipickerview

我有一个UIPicker,里面有7个项目.(只有一个组件)...如果我点击选择器中的第一个项目(没有选择器的任何滚动),我得到的文本结果为空.

但是,如果我在列表中向下"拖拽"并且那么点击项目#1就可以了.

如果我单击任何其他项目,它将始终返回正确的结果.当然,列表必须滚动才能选择这些项目.

是怎么回事?我需要调用一个委托函数吗?有没有办法将选择默认为列表中的第一项,如果他们从不点击任何东西?

谢谢,

菲尔

这是我的.m中"viewdidload"的片段

    - (void)viewDidLoad {
        [super viewDidLoad];

        NSLog(@">>> Entering %s <<<", __PRETTY_FUNCTION__);

        listOfTerms=[[NSArray alloc]initWithObjects:
                     @"Fall Semester",@"Spring Semester",@"Summer Session",@"Q1",@"Q2",@"Q3",@"Q4",nil];
...
...
Run Code Online (Sandbox Code Playgroud)

以下是我定义的其他4个UIPickerView委托函数.

- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView {
    return 1;
}




- (NSInteger)pickerView:(UIPickerView *)pickerView 
numberOfRowsInComponent:(NSInteger)component {
        return [listOfTerms count];

}





-(NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component {
        return [listOfTerms objectAtIndex:row];
}





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

    selectedTerm =[[NSString alloc] 
                       initWithFormat:@"%@",
                       [listOfTerms objectAtIndex:row]];

}
Run Code Online (Sandbox Code Playgroud)

Ano*_*mie 5

pickerView:didSelectRow:inComponent:仅在选取器视图滚动时调用.因此,如果您从不滚动视图,则永远不会调用该方法,因此永远不会设置selectedTerm.修复很简单,初始化selectedTerm in viewDidLoad:.