未选中的 UIPickerView 值

Posted

技术标签:

【中文标题】未选中的 UIPickerView 值【英文标题】:Unselected UIPickerView value 【发布时间】:2010-03-15 23:42:10 【问题描述】:

根据文档,如果 UIPickerView 没有选择值,则 selectedRowInComponent: 的预期返回应该是:

“标识所选行的零索引数字,如果没有选择行,则为 -1。”

但是,如果我在初始化一个后检查该值,它的值为0。即使我手动将其设置为-1,它仍然返回0。我希望能够检测用户是否有是否选择了一个值,而不将其记录在局部变量中。这可能吗?

示例:

UIPickerView *picker = [[UIPickerView alloc] initWithFrame:CGRectMake(0.0, 46.0, 320.0, 216.0)];
[picker selectRow:-1 inComponent:0 animated:NO];
NSLog(@"SELECTED %d", [picker selectedRowInComponent:0]);

expected output:
SELECTED -1

actual output:
SELECTED 0

【问题讨论】:

【参考方案1】:

我不确定,但我认为只有当请求的组件实际上没有任何行时它才会返回 -1。没有办法UIPickerView 中选择一行。我的意思是,你可以在顶部有一个空行,或者其他什么,这将是索引 0,但没有办法告诉 UIPickerView 不选择任何行。

【讨论】:

我想这就是答案,但我认为文档或代码都已损坏。文档似乎清楚地表明它支持“无选择”模式,并没有说明这只是意味着没有行。 我认为这并不完全正确。 In my case I have five items in my list and I set it to -1 when the picker opens.如果用户点击它设置为该值的行,但如果他们不点击,我会得到-1。似乎 -1 真的意味着“与列表没有交互” 根据我的观察,即使没有行,选择器视图也会返回 0。我无法弄清楚在什么情况下它实际上会返回 -1。

以上是关于未选中的 UIPickerView 值的主要内容,如果未能解决你的问题,请参考以下文章

UIPickerView 不会立即重绘未选中的行

如何在 UIPickerView 被选中后获取当前值

使用 UIPickerView 从 json 加载数据

获取 UIPickerView 当前选中的值

原型 tableviewcell 内的 UIPickerView 没有选择指示器

如何与 Xamarin UITest 中的自定义键盘进行交互?