• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

objective-c - 如何解决uipickerview

[复制链接]
菜鸟教程小白 发表于 2022-12-12 22:14:47 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我的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-推荐答案


我在这里看不到您初始化 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/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap