【问题标题】:How do I select the first row in a UIPickerView on first load?如何在第一次加载时选择 UIPickerView 中的第一行?
【发布时间】:2013-12-17 07:47:20
【问题描述】:

我设置选择器视图的方式是在选择其中一个选项时更改文本字段。

    [dataArray addObject:@"1"];
    [dataArray addObject:@"2"];
    [dataArray addObject:@"3"];

当我尝试在第一次加载时选择第一个选项时,它不会更改文本字段。但是,如果我向上滚动一点,然后让它在第一个选项上下拉,或者滚动到选项 2,然后向上滚动到选项 1,我可以选择 UIPickerView 中的第一个选项。有没有办法检测第一个选项上的触摸并让它选择它并更改为该选项?如果是这样,这样做的最佳做法是什么。

【问题讨论】:

  • 如果您只想将文本字段初始化为第一个选项,为什么需要通过选择器视图来完成呢?为什么不直接将文本字段设置为 [dataArray objectAtIndex:0]?

标签: ios objective-c xcode uipickerview


【解决方案1】:

如果我理解正确,您是在使用委托来通知选择器视图中的选择更改并相应地设置您的文本字段?如果是这样,您可以在加载选择器视图后调用[self pickerView:self.pickerView didSelectRow:0 inComponent:0],以便第一个元素出现在文本字段中。

【讨论】:

  • 这是一个不错的解决方案,但有没有办法让它先填充文本字段,只有点击它?
  • 如果选择器视图没有检测到点击作为选择,那么检测点击会很困难并且容易出错。您可以设置一个轻击手势识别器,但是会有很大的错误余地。我建议你坚持这个妥协。
  • 与其调用委托方法,不如使用selectRow:inComponent:animated:。
  • 以编程方式调用 selectRow 不会触发委托方法。
  • @LeoNatan,你救了我的命。谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多