【问题标题】:Unselected UIPickerView value未选中的 UIPickerView 值
【发布时间】: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

【问题讨论】:

    标签: iphone objective-c cocoa-touch uikit uipickerview


    【解决方案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。
    猜你喜欢
    • 2014-05-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多