一旦用户选择了UIPIckerView,如何解除UIPIckerView

时间:2011-10-11 03:01:36

标签: iphone ios uitextfield uipickerview dismiss

我将UIPickerView挂钩到UITextField's inputView。我突然冒出来了。我知道用户何时选择一行。我知道这行的价值。一切都很棒。

我的问题涉及何时解雇拣货员。我见过人们将[取消]和[完成]的工具栏与选择器结合,并在任一按钮上点击它。这可能是最好的方法,因为用户可以退出他们的选择。

我还看过一个应用程序,用户滚动到他们想要的选择,然后再次按下它来解散选择器。我想知道怎么做。我注意到,一旦选择器通知您选择了特定的行,如果用户继续单击/按下相同的活动行,它将不会再次通知您。

- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component

2 个答案:

答案 0 :(得分:2)

Hey UserDano,因为您已将选择器作为ipnputView添加到您可以调用的文本字段

 [outletForTextField resignFirstResponder] 

这将帮助您重新签名pickerView。现在您想要这样做的方法是首先选择要选择的值,然后在第二个选择(对于同一行)您要隐藏Picker.So保持Bool值来存储所选值,然后使用它来删除选择同一行时的选择器可能会成功。希望它有所帮助

答案 1 :(得分:0)

如果您想知道在点击某个按钮时如何关闭选择器视图,您可以将我在我的一个项目中使用过的片段:

    NSInteger selectedRow=[yourPickerView selectedRowInComponent:0];// i assume your picker have one component
NSString *item=[yourPickerView objectAtIndex:selectedRow];//get the selected item
yourTextField.text=[NSString stringWithFormat:@"%@",item];//display the selected item in the text field
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:0.5];
CGAffineTransform transform=CGAffineTransformMakeTranslation(0, 480);
yourPickerView.transform=transform;
[UIView commitAnimations];//dismiss the view controller which contains the picker view

将上面的代码放在按钮IBAction方法中。希望有所帮助。