我将UIPickerView
挂钩到UITextField's
inputView。我突然冒出来了。我知道用户何时选择一行。我知道这行的价值。一切都很棒。
我的问题涉及何时解雇拣货员。我见过人们将[取消]和[完成]的工具栏与选择器结合,并在任一按钮上点击它。这可能是最好的方法,因为用户可以退出他们的选择。
我还看过一个应用程序,用户滚动到他们想要的选择,然后再次按下它来解散选择器。我想知道怎么做。我注意到,一旦选择器通知您选择了特定的行,如果用户继续单击/按下相同的活动行,它将不会再次通知您。
- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component
答案 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方法中。希望有所帮助。