我有一个UITextField,我把它放在了UIPickerView上。当用户单击文本字段时,pickerview将像键盘一样显示。我试图在它的工具栏中的Done按钮的帮助下删除pickerview,但它没有这样做。以下是我的代码。
我曾尝试在网上寻找想法,但没有解决我的目的。任何人都可以帮助我解决这个问题,就像我在这里失踪一样。
-(void)pickerViewSetUp
{
CGRect screenRect = [[UIScreen mainScreen] bounds];
CGFloat screenWidth = screenRect.size.width;
NSLog(@"%f %f",screenWidth,screenHeight);
_myPickerView = [[UIPickerView alloc]init];
_myPickerView.delegate = self;
_myPickerView.dataSource = self;
UIToolbar *toolBar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, screenWidth, 44)];
toolBar.barStyle = UIBarStyleBlackTranslucent;
UIBarButtonItem *doneButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(hidePicker)];
UIBarButtonItem *flexible = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:self action:nil];
[toolBar setItems:[NSArray arrayWithObjects:flexible,doneButton, nil]];
[_myPickerView addSubview:toolBar];
}
-(void)hidePicker
{
[_toss resignFirstResponder];
}
- (void)textFieldDidBeginEditing:(UITextField *)textField;
{
if (textField == _toss)
{
_toss.inputView = _myPickerView;
}
}
作为临时解决方案,我使用了一个轻击手势,因此当用户从选择器视图中选择并点击屏幕时,选择器视图就会消失。以下是我的代码: 在viewDidLoad里面
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(hidePicker)];
[self.view addGestureRecognizer:tap];
然后
-(void)hidePicker
{
[_toss resignFirstResponder];
}
我仍然喜欢解决完成按钮背后的秘密而不是隐藏我的挑选视图。
答案 0 :(得分:2)
尝试拨打
[self.view endEditing:YES];
-(void)hidePicker
中的
答案 1 :(得分:0)
没有得到你真正想做的事。 只是为了删除那个选择器 你能尝试一下:
[_myPickerView removeFromSuperview];
-(void)hidePicker
中的