菜鸟教程小白 发表于 2022-12-12 22:14:47

objective-c - 如何解决uipickerview


                                            <p><p>我的pickerview 有问题,单击文本字段会显示一个空的uipickerview。我有 3 个文本字段,通过单击每个文本字段,每个文本字段都会有不同的数组。
代码如下:</p>

<pre><code>- (void)viewDidLoad
{
    ;
    tbMode.inputView = pickerView;
    tbWalkDist.inputView = pickerView;
    tbRouteOpt.inputView = pickerView;
}
-(BOOL)textFieldShouldReturn:(UITextField *)textField {
    ;
    return YES;
}
-(void)textFieldDidBeginEditing:(UITextField*)textField;
{
    modeArray = [ init];
    if(textField.tag==1){
      ;
      ;
      pickerView.hidden = NO;
    }
    else{
      if(textField.tag==2){
            ;
            ;
            ;
            pickerView.hidden = NO;
    }
      else{
            if(textField.tag==3){
                ;
                ;
                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 = ;
}

- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component;
{
    return ;
}

- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component;
{
    return ;
}
</code></pre>

<p>请帮忙!我哪里做错了?是否可能不调用此方法 <code>-(void)textFieldDidBeginEditing:(UITextField*)textField;</code> ?谢谢</p>

<p>edit* 我错过了用于在 <code>viewDidLoad</code></p> 中调用该方法的每个文本字段的这 3 行

<pre><code>tbMode.delegate = self;
tbWalkDist.delegate = self;
tbRouteOpt.delegate = self;
</code></pre>

<p>但我仍然得到一个空的选择器 View 。如何将这些 <code>NSMutableArray</code> 添加到选择器 View 中
*添加 <code>;</code> 选择器将显示值:)</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>我在这里看不到您初始化 pickerView ivar 的位置。我可以假设它是在 xib 中创建的吗?
如果是这样,请确保您已连接 iBOutlet 并将其委托(delegate)和数据源属性设置为“文件所有者”或 ViewController 。</p>

<p>如果您在 init 方法中创建选择器,请发布该代码,以便我们查看这些属性是否设置正确。</p>

<p>您还必须将 Controller 设置为 uiTextField 的委托(delegate)。</p>

<p>此外,如果它们没有在其他地方实现,则您缺少这些必需的协议(protocol):</p>

<p>--pickerView:rowHeightForComponent:</p>

<p>--pickerView:widthForComponent:</p></p>
                                   
                                                <p style="font-size: 20px;">关于objective-c - 如何解决uipickerview,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/11714605/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/11714605/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: objective-c - 如何解决uipickerview