ピッカービューに問題があり、テキストフィールドをクリックすると空のuipickerviewが表示されます。3つのテキストフィールドがあり、各テキストフィールドをクリックすると、それぞれに異なる配列が表示されます。コードは次のとおりです。
- (void)viewDidLoad
{
[super viewDidLoad];
tbMode.inputView = pickerView;
tbWalkDist.inputView = pickerView;
tbRouteOpt.inputView = pickerView;
}
-(BOOL)textFieldShouldReturn:(UITextField *)textField {
[textField resignFirstResponder];
return YES;
}
-(void)textFieldDidBeginEditing:(UITextField*)textField;
{
modeArray = [[NSMutableArray alloc] init];
if(textField.tag==1){
[modeArray addObject:@" A "];
[modeArray addObject:@" B "];
pickerView.hidden = NO;
}
else{
if(textField.tag==2){
[modeArray addObject:@" 300 "];
[modeArray addObject:@" 400 "];
[modeArray addObject:@" 500 "];
pickerView.hidden = NO;
}
else{
if(textField.tag==3){
[modeArray addObject:@" cheapest "];
[modeArray addObject:@" fastest "];
pickerView.hidden = NO;
}
else{
pickerView.hidden=YES;
}
}
}
}
- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView;
{
return 1;
}
- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent: (NSInteger)component
{
tbMode.text = [modeArray objectAtIndex:row];
}
- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component;
{
return [modeArray count];
}
- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component;
{
return [modeArray objectAtIndex:row];
}
plsヘルプ!どこが間違っていたのですか?このメソッド-(void)textFieldDidBeginEditing:(UITextField*)textField;
が呼び出されない可能性はありますか?ありがとう
編集*私はそのメソッドを呼び出すために使用する各テキストフィールド用のこれらの3行を見逃していますviewDidLoad
tbMode.delegate = self;
tbWalkDist.delegate = self;
tbRouteOpt.delegate = self;
しかし、まだ空のピッカービューが表示されます。これらをピッカービューに追加するにはどうすればよいですかNSMutableArray
*ピッカーに追加する[pickerView reloadAllComponents];
と値が表示されます:)