我的pickerview 有问题,单击文本字段会显示一个空的uipickerview。我有 3 个文本字段,通过单击每个文本字段,每个文本字段都会有不同的数组。
代码如下:
- (void)viewDidLoad
{
[super viewDidLoad];
tbMode.inputView = pickerView;
tbWalkDist.inputView = pickerView;
tbRouteOpt.inputView = pickerView;
}
-(BOOL)textFieldShouldReturnUITextField *)textField {
[textField resignFirstResponder];
return YES;
}
-(void)textFieldDidBeginEditingUITextField*)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)numberOfComponentsInPickerViewUIPickerView *)pickerView;
{
return 1;
}
- (void)pickerViewUIPickerView *)pickerView didSelectRowNSInteger)row inComponent: (NSInteger)component
{
tbMode.text = [modeArray objectAtIndex:row];
}
- (NSInteger)pickerViewUIPickerView *)pickerView numberOfRowsInComponentNSInteger)component;
{
return [modeArray count];
}
- (NSString *)pickerViewUIPickerView *)pickerView titleForRowNSInteger)row forComponentNSInteger)component;
{
return [modeArray objectAtIndex:row];
}
请帮忙!我哪里做错了?是否可能不调用此方法 -(void)textFieldDidBeginEditing:(UITextField*)textField; ?谢谢
edit* 我错过了用于在 viewDidLoad 中调用该方法的每个文本字段的这 3 行
tbMode.delegate = self;
tbWalkDist.delegate = self;
tbRouteOpt.delegate = self;
但我仍然得到一个空的选择器 View 。如何将这些 NSMutableArray 添加到选择器 View 中
*添加 [pickerView reloadAllComponents]; 选择器将显示值
Best Answer-推荐答案 strong>
我在这里看不到您初始化 pickerView ivar 的位置。我可以假设它是在 xib 中创建的吗?
如果是这样,请确保您已连接 iBOutlet 并将其委托(delegate)和数据源属性设置为“文件所有者”或 View Controller 。
如果您在 init 方法中创建选择器,请发布该代码,以便我们查看这些属性是否设置正确。
您还必须将 Controller 设置为 uiTextField 的委托(delegate)。
此外,如果它们没有在其他地方实现,则您缺少这些必需的协议(protocol):
--pickerView:rowHeightForComponent:
--pickerView:widthForComponent:
关于objective-c - 如何解决uipickerview,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/11714605/
|