UIPickerView完成按钮不起作用

KkM*_*MIW 3 objective-c toolbar uipickerview uibarbuttonitem ios

选择器视图与工具栏,创建完成按钮上.单击完成按钮,它不起作用.

选择器视图向上滚动.点击完成按钮.

-(void)createPicker:(id)sender{

    pickerView = [[UIPickerView alloc] initWithFrame:CGRectMake(0,100,0,0)];
    [pickerView setDataSource: self];
    [pickerView setDelegate: self];
    pickerView.showsSelectionIndicator = YES;
    [pickerView setBackgroundColor:[UIColor whiteColor]];

    UIToolbar *toolBar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, 44)];
    toolBar.barStyle = UIBarStyleBlackOpaque;
    UIBarButtonItem *doneButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(doneTouched:)];
    [toolBar setItems:[NSArray arrayWithObjects:[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil], doneButton, nil]];
    [pickerView addSubview:toolBar];
}
Run Code Online (Sandbox Code Playgroud)

点击完成按钮关闭pickerView

-(void)doneTouched:(id)sender{
     [pickerview removeFromSuperview];
 }
Run Code Online (Sandbox Code Playgroud)

我不知道我在这里做错了什么.任何人都可以建议我如何调用uipickerview工具栏按钮上添加的完成按钮方法.

点击完成选择器视图向上滚动,而不是调用doneTouched方法:

@All先谢谢.

KkM*_*MIW 5

我已经解决了不知道是否正确实施的问题,但它对我有用.下面是带有完成按钮的选择器视图的代码

-(void)createPickerView{

    pickerToolBarView = [[UIView alloc]initWithFrame:CGRectMake(0,self.view.frame.size.height/2, self.view.frame.size.width,400)];
    [pickerToolBarView setBackgroundColor:[UIColor whiteColor]];

    UIToolbar *toolBar = [[UIToolbar alloc] initWithFrame:CGRectMake(0,0,pickerToolBarView.frame.size.width,42)];
    toolBar.barStyle = UIBarStyleBlackOpaque;
    UIBarButtonItem *doneButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(doneTouched:)];
    [toolBar setItems:[NSArray arrayWithObjects:[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil], doneButton, nil]];

    pickerView = [[UIPickerView alloc] initWithFrame:CGRectMake(0,toolBar.frame.size.height,toolBar.frame.size.width,100)];
    [pickerView setDataSource: self];
    [pickerView setDelegate: self];
    pickerView.showsSelectionIndicator = YES;
    [pickerView setBackgroundColor:[UIColor whiteColor]];

    [pickerToolBarView addSubview:toolBar];
    [pickerToolBarView addSubview:pickerView];
    [self.view addSubview:pickerToolBarView];
    [self.view bringSubviewToFront:pickerToolBarView];
    [pickerToolBarView setHidden:YES];   
}

/* Done Touched */
- (void)doneTouched:(UIBarButtonItem *)sender{
    // hide the  view
    NSLog(@"Done Touched");
    [pickerToolBarView setHidden:YES];
}
Run Code Online (Sandbox Code Playgroud)