未选中的 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 值的主要内容,如果未能解决你的问题,请参考以下文章